我正在测试npm软件包注册表的新版本。我想在CI服务器中运行作业,并指定与默认注册表不同的注册表。
我尝试执行npm publish --registry "http://nexus.dsv.myhost/nexus/repository/npmjs-registry
,但没有成功。它已发布到默认注册表。
在运行npm publish
时如何指定其他注册表。这是一个有范围的程序包。
答案 0 :(得分:2)
听起来您在 npm 配置中的某处配置了特定于范围的注册表。
npm 将合并您的全局、本地和 CLI 提供的配置。但是,任何特定于范围的配置都将优先于未定义范围的配置,无论每个配置在哪里定义。
例如,如果您的 @myscope:registry=xyz
文件中有 ~/.npmrc
,它会优先于 CLI 上提供的 --registry=abc
,因为特定于作用域的注册表总是会覆盖无作用域的注册表。
但是,您也可以像这样在 CLI 本身上传递特定于范围的注册表:
npm publish --@myscope:registry=http://nexus.dsv.myhost/nexus/repository/npmjs-registry
请注意,由于 nopt
(这是 npm 在后台用于解析 CLI 选项的方式)解析自由格式开关的方式,因此此处需要 =
符号。如果您改用空格,它将无法按预期工作。
答案 1 :(得分:0)
有多种方法可以做到这一点。
1)使用Traceback (most recent call last):
File "/home/profiles/sources/impact/test.py", line 110, in _handle_future_exception
future.result()
File "/usr/local/lib/python3.7/concurrent/futures/_base.py", line 428, in result
return self.__get_result()
File "/usr/local/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
TypeError: __init__() missing 2 required positional arguments: 'params' and 'orig'
至set the registry globally:
npm config
2)使用npm config set registry http://nexus.dsv.myhost/nexus/repository/npmjs
至set the registry for the package scope:
npm config
3)使用publish config配置您的package.json:
npm config set @<your scope here>:registry http://nexus.dsv.myhost/nexus/repository/npmjs
4)使用{
...
"publishConfig": {
"registry": "http://nexus.dsv.myhost/nexus/repository/npmjs"
},
...
}
至configure the registry
npmrc