How to migrate NPM package to an organization @scope

后端 未结 2 442
旧巷少年郎
旧巷少年郎 2021-02-05 02:32

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

相关标签:
2条回答
  • 2021-02-05 02:57

    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.

    0 讨论(0)
  • 2021-02-05 03:03

    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

    0 讨论(0)
提交回复
热议问题