ExMachina's elements centralized in a monorepo
You will need to install lerna globally first
npm i -g lerna
Then simply install the project, and dependancies from packages
npm install && lerna run package-install
For the moment packages are not sym-linked from one another because of lit-element
??.
lerna run start --scope @exmg/exmg-dialogs --stream
npm run lerna:clean
- remove node_modules and package-lock.json from packages/*
npm run clean
- remove node_modules from packages/*
npm run ls
- show list of your packages
lerna run :script-name
- which is resolved tonpm run :script-name
and executed on all packages if:script-name
is added topackage.json > scripts
of package
-
lerna exec :script-name
- You can use exec for running a shell command on all your packages, similar with run command, but you don’t need to define the script on all packages! -
lerna exec --no-bail -- npm run lint
will execute ESLint in all packages, without exiting if a package as an error. Very handful to do a gloabl check before publish.
Production versioning should follor the semantic versioning (https://semver.org/)
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
##
lerna publish prerelease
lerna publish pathch
lerna publish minor
lerna publish major
It will increment version and commit and push to GIT then publish to npm
For development you can use sinopia
to setup private npm registry (follow docs)
npm i -g sinopia
## setup add users etc.
#run npm server
sinopia
npm set registry http://localhost:4873/ # this is default port
### it will push packages to your private repo
### It will not create git tags nor commits
### Lerna determine version base on git so if you run it second time you have to
### unpublish previous releases or change --preid to another uniq value
lerna publish prerelease --no-git-tag-version --no-push --preid=my-uniq-id