如何将NPM包迁移到组织@scope

时间:2017-03-24 19:12:47

标签: node.js npm

NPM最近为模块引入了@scopes / organizations。有没有一种将现有模块迁移到组织的好方法?是否有任何工具可以自动化大量的包? NPM是否支持重定向,以便其他软件仍然可以使用旧名称,但是会收到应该更新的通知?

2 个答案:

答案 0 :(得分:28)

您可以从以下位置更改package.json:

body {
    background-color: color-get(bkgrnd); // Returns #123143
    color: color-get(main); // Returns #ffce00
}

button {
    border: 2px solid color-get(main, 50); // Returns rgba(255, 206, 0, 0.5)
}

为:

"name": "project-name"

并发布包:

"name": "@scope/project-name"

更新:需要npm publish --access=public 参数才能使作用域包公开 - 否则默认情况下它将是私有的。您可以在--access=public的{​​{1}}部分中将access设置为"public",而不是命令行参数:

publishConfig

(感谢Danilo BargenGreg Pratt在评论中指出它!)

请参阅:https://docs.npmjs.com/getting-started/scoped-packages

npm不支持从旧名称到新名称的重定向,但是 您可以使用以下命令弃用旧包:

package.json

因此,安装旧版本的人会收到通知他们应该安装另一个软件包。

请参阅:https://docs.npmjs.com/cli/deprecate

答案 1 :(得分:3)

另一种不涉及重命名程序包的方法是转到npm网站上您组织中的团队设置(有一个默认的团队称为“开发人员”)。有一个按钮可以将现有的程序包添加到团队中。

通过这种方式,您实际上可以传输软件包,而不用其他名称重新发布。