我正在用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
我试着搜索文档,但我找不到任何有用的东西,有什么想法吗?
谢谢!
发布于 2020-10-15 11:06:43
似乎每个包中的.npmrc
文件在发布时都被忽略了。我已经使用所需的身份验证数据在项目的根目录中创建了一个.npmrc
文件,现在它的功能非常出色。
这是我的.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>
https://stackoverflow.com/questions/64367880
复制