Node build tool for npm packages in a git repository. Npm 7 workspaces are
supported. Heavy lifting is done by the @npmcli/arborist
package.
The build tool works with git repostiories that contain npm packages. Either with or witout workspaces.
Creating Github releases requires a token with write access to the repository.
export GITHUB_TOKEN=paste_token_here
You can rename template.env.development into
.env.development
and save the token in there.
npm install -g @jaccomeijer/jmmake
npx @jaccomeijer/jmmake build
Lists the workspaces of a package. Without workspaces the repository itself is listed.
jmmake list
The build command runs npm run build
in all package folders. The command does
not publish, push or release.
jmmake build
The version command updates all related packages in a repository. The command does not publish, push or release.
jmmake version @org/package-name
The publish command publishes the package to the npm repository. The command also pushes and releases to git.
jmmake publish @org/package-name
The release command combines the three commands above. The command will build, version and publish the package.
jmmake release @org/package-name
Read values from the root package.json
and write them to the package.json
of all workspaces.
These fields values are synced:
- author
- bugs
- contributors
- engines
- homepage
- keywords
- license
- publishConfig
- repository
This key order is used:
- name
- version
- private
- description
- keywords
- homepage
- bugs
- repository
- license
- author
- contributors
- exports
- typesVersions
- main
- files
- bin
- publishConfig
- workspaces
- scripts
- dependencies
- devDependencies
- peerDependencies
- engines
- browserslist
jmmake sync
Creates symlinks in the ./node_modules
folder for the package found at the path specified.
jmmake link ../link/this/repository