Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将NPM包迁移到组织@scope_Node.js_Npm - Fatal编程技术网

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

Node.js 如何将NPM包迁移到组织@scope,node.js,npm,Node.js,Npm,最近为模块引入了@scopes/组织。是否有一种将现有模块迁移到组织的好方法?有没有工具可以为大量软件包实现自动化?NPM是否支持重定向,以便其他软件仍可以使用旧名称,但会收到更新通知?您可以从以下位置更改您的package.json: "name": "project-name" 致: 并发布包: npm publish --access=public 更新:需要使用--access=public参数使作用域包成为公共的-否则默认情况下它将是私有的。您可以在package.json的pub

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

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

"name": "project-name"
致:

并发布包:

npm publish --access=public
更新:需要使用
--access=public
参数使作用域包成为公共的-否则默认情况下它将是私有的。您可以在
package.json的
publishConfig
部分中,将
access
设置为
“public”
,而不是命令行参数:

"publishConfig": {
  "access": "public"
}
(感谢并在评论中指出这一点!)

见:

npm不支持从旧名称重定向到新名称,但是 您可以使用以下方法弃用旧软件包:

npm deprecate <pkg>[@<version>] <message>
npm不推荐[@]
这样,安装旧版本的用户将收到通知,他们应该安装另一个软件包


请参阅:

另一种不涉及重命名软件包的方法是在npm网站上转到组织中的团队设置(有一个名为“开发人员”的默认团队)。那里有一个按钮,用于将现有包添加到团队中


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

publish命令可能应该包括
--access=public
参数。或者将
“publishConfig”:{“access”:“public”},
添加到package.json中,否则,它将被发布为私有default@DaniloBargen接得好,谢谢你指出!我把它添加到了答案中。为什么这不适用于成员发布但不受范围限制的包。当我尝试向开发人员团队添加包时,Npm会以“禁止”回应。但这不会为包的所有当前用户重定向,或者会吗?我只是尝试了这个。它不会将包传输给组织,它只允许组织中的人员发布对原始包的更改。
npm deprecate <pkg>[@<version>] <message>