如何通过修改.npmrc文件在travis上运行lerna publish?

时间:2019-09-02 18:17:12

标签: javascript git travis-ci lerna monorepo

我尝试将组件库重新设计为monorepo。我为此选择了勒娜。 一切正常,直到我尝试将其连接到Travis CI。

我需要首先了解Travis上的一个技巧。 我将私有NPM注册表用于其中一个依赖项,我的lib也存储在同一位置。

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

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

现在,当我运行lerna publish时,我会看到一条消息:

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

我试图将.npmrc添加到.gitignore,但这是不可撤消的。我需要修改此文件,我不想将其保留在回购中。 该如何解决?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以以illustrated by this Gist的身份提交Travis版本。

您只需要小心,而不要创建Travis CI叉子炸弹(!):请参见travis-ci/travis-ci issue 1701

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