【发布时间】:2021-01-29 17:16:36
【问题描述】:
我正在使用Lerna 进行一些测试,以创建一个包含一堆我想与某些应用程序共享的包的单一存储库。我按照 Lerna 的文档设置了一个项目,这是文件结构:
- lernatest/
- lerna.json
- package.json
- packages/
- common
- src/
- index.ts
- .npmrc
- package.json
- models
- src
- index.ts
- .npmrc
- package.json
我需要将包发布到我的 Gitlab 帐户中的私人项目。在使用 Lerna 之前,我可以在每个包上手动添加一个 .npmrc 文件,其中包含以下内容:
@mypackages:registry=https://gitlab.com/api/v4/packages/npm/
//gitlab.com/api/v4/projects/<PROJECT_ID>/packages/npm/:_authToken=<TOKEN>
//gitlab.com/api/v4/packages/npm/:_authToken=<TOKEN>
并且在每个package.json 文件中:
{
"name": "@mypackages/common",
"publishConfig": {
"@mypackages:registry": "https://gitlab.com/api/v4/projects/<PROJECT_ID>/packages/npm/"
}
(ETC...)
}
我不知道如何正确配置 Lerna 以将包发布到我的 Gitlab 注册表。这是我的lerna.json 文件:
{
"version": "0.0.5",
"packages": [
"packages/*"
],
"command": {
"publish": {
"registry": "https://gitlab.com/api/v4/projects/<PROJECT_ID>/packages/npm/"
}
}
}
但是当我运行npx lerna publish 时,我收到以下错误:
lerna info publish Publishing packages to npm...
lerna notice Skipping all user and access validation due to third-party registry
lerna notice Make sure you're authenticated properly ¯\_(ツ)_/¯
lerna http fetch PUT 401 https://gitlab.com/api/v4/projects/<PROJECT_ID>/packages/npm/@mypackages%2fcommon 462ms
lerna ERR! E401 401 Unauthorized - PUT https://gitlab.com/api/v4/projects/<PROJECT_ID>/packages/npm/@mypackages%2fgcommon
我已尝试搜索文档,但找不到任何有用的信息或任何想法?
谢谢!
【问题讨论】:
-
报错信息提示需要自己认证。我认为您正在使用范围包 (
@scoped/package-name) 吗?我对么?您需要设置一个安全令牌:npm config set '//gitlab.com/api/v4/projects/<your_project_id>/packages/npm/:_authToken' "<your_token>"来自Documentation -
嗨!我已经在项目根目录的
.npmrc文件中设置了身份验证详细信息,现在它可以工作了。感谢您的建议。 -
太棒了。很高兴听到