配置Lerna将NPM包发布到私有Gitlab repo

配置Lerna将NPM包发布到私有Gitlab repo,gitlab,lerna,Gitlab,Lerna,我正在做一些测试来创建一个mono-repo,其中包含一系列我想与一些应用程序共享的包。我按照Lerna的文档设置了一个项目,文件结构如下: - lernatest/ - lerna.json - package.json - packages/ - common - src/ - index.ts - .npmrc - package.json

我正在做一些测试来创建一个mono-repo,其中包含一系列我想与一些应用程序共享的包。我按照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>
我不知道如何正确配置Lerna以将包发布到我的Gitlab注册表。这是我的
lerna.json
文件:

{
  "name": "@mypackages/common",
  "publishConfig": {
    "@mypackages:registry": "https://gitlab.com/api/v4/projects/<PROJECT_ID>/packages/npm/"
  }
  (ETC...)
}
{
  "version": "0.0.5",
  "packages": [
    "packages/*"
  ],
  "command": {
    "publish": {
      "registry": "https://gitlab.com/api/v4/projects/<PROJECT_ID>/packages/npm/"
    }
  }
}
我试着搜索文档,但找不到任何有用的东西,有什么想法吗


谢谢

似乎在发布时忽略了每个包中的
.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>
@mypackages:registry=https://gitlab.com/api/v4/packages/npm/
//gitlab.com/api/v4/projects//packages/npm/:\u authToken=
//gitlab.com/api/v4/packages/npm/:\u authToken=

错误消息表明您需要对自己进行身份验证。我想您正在使用范围包(
@scoped/package name
)?我说得对吗?您需要设置一个安全令牌:
npm-config-set'//gitlab.com/api/v4/projects//packages/npm/:_-authToken'”
从Hi!我已经在项目根目录下的
.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>