Is there any way the I can define two registries in publishConfig in package.json?
the use case is for publishing the artifact in 2 different location based on the purpose, when it is a SNAPSHOT it will use the snapshot path and for release purpose it uses the other one.
something like:
"publishConfig": {
"snapshot-registry": "http://artifactory.test/artifactory/api/npm-snapshots"
"release-registry": "http://artifactory.test/artifactory/api/npm-releases"
},
By reading the npm package json docs npm-package-json You can only override existing npm-config settings by using publishConfig, so you may not be able to add new properties.
However, you can use .npmrc to set different registry entries for scoped packages and default. In the .npmrc example bellow I have the snapshot package set for the GitHub registry and everything else may be published to the default npm registry.
@snapshot:registry=https://npm.pkg.github.com/snapshot
registry=https://registry.npmjs.org
The tricky part is which registry will the package go to. right? with the settings we have now, a simple npm publish would not work or it may just publish to the default registry. One approach I use, is login to my scoped registry with npm login --registry=https://npm.pkg.github.com --scope=snapshot, edit my package.json to match the name of my scoped package, for example @snapshot/package so it does not go to the default registry then publish.
Then, you may login to the default registry, edit accordingly and publish again there.
I hope this helps you, Its an annoying process, we may even need a "package registry manager" Don't know if one exists.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With