Package Exports
- ngx-deploy-npm
- ngx-deploy-npm/src/generators/install/generator
- ngx-deploy-npm/src/generators/install/generator.js
- ngx-deploy-npm/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ngx-deploy-npm) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ngx-deploy-npm đ

Publish your libraries to NPM with one command
Table of contents:
- đ Quick Start (local development)
- đ Continuous Delivery
- đĻ Options
- Compatibility overview with Nx
- đ Configuration File
- đ§ Essential considerations
- đ Do you Want to Contribute?
- License
- Recognitions
đ Quick Start (local development)
Add
ngx-deploy-npmto your project. It will configure all your publishable libraries present in the project:npm install --save-dev ngx-deploy-npm nx generate ngx-deploy-npm:install
Deploy your library to NPM with all default settings.
nx deploy your-library --dry-run
When you are happy with the result, remove the
--dry-runoption
đ Continuous Delivery
Independently of the CI/CD you are using, you need an NPM token. To do so, you have two methods.
- Via NPM web page
- Using
npm token create
CircleCI
Set the env variable
- On your project setting the env variable. Let's call it
NPM_TOKEN
- On your project setting the env variable. Let's call it
Indicate how to find the token
- Before publishing, we must indicate to npm how to find that token,
do it by creating a step with
run: echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' > YOUR_REPO_DIRECTORY/.npmrc - Replace
YOUR_REPO_DIRECTORYfor the path of your project, commonly is/home/circleci/repo
- Before publishing, we must indicate to npm how to find that token,
do it by creating a step with
(Optional) check that you are logged
- Creating a step with
run: npm whoami - The output should be the username of your npm account
- Creating a step with
Deploy your package
Create a step with:
nx deploy your-library
Enjoy your just-released package đđĻ
The complete job example is:
# .circleci/config.yml
jobs:
init-deploy:
executor: my-executor
steps:
- attach_workspace:
at: /home/circleci/repo/
# Set NPM token to be able to publish
- run: echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' > /home/circleci/repo/.npmrc
- run: npm whoami
- run: npx nx deploy YOUR_PACKAGEYou can check the steps suggested in the CircleCI's guide
đĻ Options
install
--dist-folder-path
- required
- Example:
nx generate ngx-deploy-npm:install --project=lib-1 --dist-folder-path="dist/libs/lib-1"
Indicates the dist folder path. The path where is located the bundle of your library. The path should be relative to the project's root.
--project
- required
- Example:
nx generate ngx-deploy-npm:install --project=lib-1 --dist-folder-path="dist/libs/lib-1"âlib-1will be configured. It will create the target deploy with the default options on the projectlib-1.
Specify which library should be configured.
--access
- optional
- Default:
public - Example:
nx generate ngx-deploy-npm:install --access=restricted --project=lib-1 --dist-folder-path="dist/libs/lib-1"
Tells the registry whether to publish the package as public or restricted. It only applies to scoped packages, which default to restricted. If you don't have a paid account, you must publish with --access public to publish scoped packages.
deploy
--dist-folder-path
- required
- Example:
nx deploy --dist-folder-path='dist/libs/my-project'
Indicate the dist folder path. The path must relative to project's root.
--check-existing
- optional
- Example:
nx deploy --check-existing=warningnx deploy --check-existing=error
Check if the package version already exists before publishing.
If it exists and --check-existing=warning, it will skip the publishing and log a warning.
If it exists and --check-existing=error, it will throw an error.
--package-version
- optional
- Example:
nx deploy --package-version 2.3.4
It's going to put that version on your package.json and publish the library with that version on NPM.
--tag
- optional
- Default:
latest(string) - Example:
nx deploy --tag alphaâ Your package will be available for download using that tag,npm install your-package@alphauseful for RC versions, alpha, betas.
Registers the published package with the given tag, such that npm install @ will install this version. By default, npm publish updates and npm install installs the latest tag. See npm-dist-tag for details about tags.
--access
- Default:
public(string) - Example:
nx deploy --access public
Tells the registry whether to publish the package as public or restricted. It only applies to scoped packages, which default to restricted. If you don't have a paid account, you must publish with --access public to publish scoped packages.
--otp
- optional
- Example:
nx deploy --otp TOKEN
If you have two-factor authentication enabled in auth-and-writes mode, you can provide a code from your authenticator.
--registry
- optional
- Example:
nx deploy --registry http://localhost:4873
Configure npm to use any compatible registry you like, and even run your own registry.
--dry-run
- optional
- Default:
false(boolean) - Example:
nx deploy --dry-run
For testing: Run through without making any changes. Execute with --dry-run, and nothing will happen. It will show a list of the options used on the console.
Compatibility overview with Nx
| Version | Nx Workspace Version |
|---|---|
| v8.3.0 | ^20.0.0 || ^19.0.0 || ^18.0.0 || ^17.0.0 || ^16.0.0 |
| v8.2.0 | ^19.0.0 || ^18.0.0 || ^17.0.0 || ^16.0.0 |
| v8.1.0 | ^18.0.0 || ^17.0.0 || ^16.0.0 |
| v8.0.0 | ^17.0.0 || ^16.0.0 |
| v7.1.0 | ^17.0.0 || ^16.0.0 |
| v7.0.1 | ^16.0.0 |
đ Configuration File
To avoid all these command-line cmd options, you can write down your
configuration in the workspace.json file in the options attribute
of your deploy project's executor.
Just change the option to lower camel case.
A list of all available options is also available here.
Example:
nx deploy your-library --tag alpha --access public --dry-runbecomes
"deploy": {
"executor": "ngx-deploy-npm:deploy",
"options": {
"tag": "alpha",
"access": "public",
"dryRun": true
}
}Now you can just run nx deploy YOUR-LIBRARY without all the options in the command line! đ
âšī¸ You can always use the --dry-run option to verify if your configuration is correct.
đ§ Essential considerations
Version Generation
This deployer doesn't bump or generate a new package version; here, we care about doing one thing well, publish your libs to NPM. You can change the version package at publishment using the --package-version option.
We strongly recommend using @jscutlery/semver to generate your package's version based on your commits automatically. When a new version is generated you can specify to publish it using ngx-deploy-npm.
For more information go to semver's documentation
We use @jscutlery/semver here on ngx-deploy-npm to generate the package's next version, and we use ngx-deploy-npm to publish that version to NPM. Yes, it uses itself, take a look by yourself ngx-deploy-npm/project.json
Only publishable libraries are being configured
Only publishable libraries are going to be configured.
đ Do you Want to Contribute?
We create a unique document for you to give you through this path.
License
Code released under the MIT license.
Recognitions
- đ Initially Powered By ngx-deploy-starter