Adding a new Joplin package
To add a new Joplin package (in the /packages folder), several factors must be considered. Please make sure you follow this documentation to ensure the package can be correctly deployed and maintained by the existing tooling.
In this documentation, replace PACKAGE_NAME by the name of the newly created package.
In package.json
In the new package package.json file:
- Set the
nameto@joplin/PACKAGE_NAME - Add
"publishConfig": { "access": "public" }. Otherwise npm will try to publish the package as a private one, but we only want public packages. Also Lerna will fail when publishing the package if it is private since our repository is a free one (private packages are not supported). - Set the
versionto the current major/minor version of Joplin. licenseshould most likely beAGPL-3.0-or-laterrepositoryshould behttps://github.com/laurent22/joplin/tree/dev/packages/PACKAGE_NAME
In setupNewRelease.ts
Add a line to ensure that the version number is automatically updated:
await updatePackageVersion(`${rootDir}/packages/PACKAGE_NAME/package.json`, majorMinorVersion, options);
In .npmpackagejsonlintrc.json
Add the name of the new packages to the exceptions. This is because Lerna set the package version number to something like ^x.y.z, while we only support pinned versions x.y.z. But this is fine for Joplin-specific packages.
In packages/app-mobile/metro.config.js
If the package is to be used by the mobile app, make sure you add it to the localPackages list:
'@joplin/PACKAGE_NAME': path.resolve(__dirname, '../PACKAGE_NAME/'),