如何 运行 lerna 通过修改 .npmrc 文件在 Travis 上发布?

How to run lerna publish on Travis with modifying .npmrc file?

我尝试将我的组件库重新设计为 monorepo。我为此选择了lerna。 在我尝试将它连接到 Travis CI.

之前一切正常

我在 Travis 上使用了一个技巧,您首先需要注意这一点。 我对其中一个依赖项使用私有 NPM 注册表,我还将我的库存储在同一个地方。

因此,出于开发目的,我在 .npmrc 文件中存储了一个令牌,在代码库中具有只读访问权限。 具有发布权的令牌保存在 Travis 中,当工作 运行 在那里时,我用 Travis 令牌覆盖 .npmrc 内容。

一切正常(对于 NPM 发布),直到我切换到 lerna。

现在当我 运行 lerna 发布时,我可以看到一条消息:

lerna ERR! EUNCOMMIT Working tree has uncommitted changes, 
           please commit or remove the following changes before continuing:
lerna ERR! EUNCOMMIT  M .npmrc

我尝试将 .npmrc 添加到 .gitignore,但无法撤消。我需要修改这个文件,我不想把它保存在回购协议中。 如何解决?

提前致谢。

您可以在您的 Travis 构建中提交,如 illustrated by this Gist

你只需要小心,不要制造 Travis CI 叉子炸弹(!):见 travis-ci/travis-ci issue 1701

另一种方法是在 package.json 中添加 "prepare": "git update-index --skip-worktree -- .npmrc", 脚本步骤,以强制文件忽略其修改。
.