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
name
to@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
version
to the current major/minor version of Joplin. license
should most likely beAGPL-3.0-or-later
repository
should 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/'),