NPM has recently introduced @scopes / organizations for the modules. Is there a good way to migrate existing modules to the organization? Are there any tools for automating it
Another way to do this that doesn't involve renaming the package, is to go to the team settings in your organization on the npm website (there's a default team called "developers"). There's a button there to add an existing package to the team.
This way you actually transfer the package, instead of republishing it under a different name.
You can change your package.json from:
"name": "project-name"
to:
"name": "@scope/project-name"
and publish the package:
npm publish --access=public
Update: The --access=public
argument is needed to make the scoped package public - otherwise it will be private by default. Instead of the command-line argument you can set access
to "public"
in the publishConfig
section of your package.json
:
"publishConfig": {
"access": "public"
}
(Thanks to Danilo Bargen and Greg Pratt for pointing it out in the comments!)
See: https://docs.npmjs.com/getting-started/scoped-packages
The npm doesn't support redirects from old names to new names but you can deprecate the old package with:
npm deprecate <pkg>[@<version>] <message>
So that people who install the old version would be notified that they should install another package instead.
See: https://docs.npmjs.com/cli/deprecate