运行 `npm install` 时是不是可以覆盖本地 .npmrc?
Posted
技术标签:
【中文标题】运行 `npm install` 时是不是可以覆盖本地 .npmrc?【英文标题】:Is it possible to override a local .npmrc when running `npm install`?运行 `npm install` 时是否可以覆盖本地 .npmrc? 【发布时间】:2017-01-08 18:31:57 【问题描述】:我的项目在其根目录中有一个 .npmrc,其中包含臭名昭著的 $NPM_TOKEN hack,是 CI、Staging、生产等所必需的。
为了解决这个问题,我希望开发人员能够告诉npm
在安装依赖项时使用包含他们的 _authToken
的替代.npmrc。比如npm install . --npmrc=~/.npmrc
。这将防止他们不得不污染系统的环境变量、.bash_profile 等。
目前可以吗? (似乎不是这样……)如果不是,有什么理由说明这种方法要么不可能(极不可能),要么 NPM 团队不会考虑?
【问题讨论】:
【参考方案1】:幸运的是,this option already exists 可以这样使用:
npm install . --userconfig=~/.npmrc
【讨论】:
这将设置用户特定的配置,仍然会被本地项目特定的 .npmrc 覆盖,不是吗? 这个配置只是改变了用户特定的 npm 配置文件应该被找到的位置而不是优先级至少我是这么认为的。请让我们知道它是否有效 这似乎不起作用。当我从具有$PROJECT/.npmrc
的项目中运行npm --userconfig=~/.npmrc whoami
时,它仍然显示来自项目的用户名,而不是我的用户配置。
我为此提出了一个新问题,在这里:***.com/q/57045297/71522【参考方案2】:
我有类似的问题,我的解决方案是将项目级别 .npmrc 重命名为 .npmrc-ci 之类的名称,这样它就不会与本地环境混淆,而在 ci 脚本中添加 mv .npmrc-ci .npmrc
在运行任何 npm 之前命令。
【讨论】:
以上是关于运行 `npm install` 时是不是可以覆盖本地 .npmrc?的主要内容,如果未能解决你的问题,请参考以下文章
运行 npm install cordova 时 npm install 不起作用
npm install使用^ dependency而不是完全匹配
如何在没有 npm install 的情况下从 github 运行 react 项目
当我运行`npm install`时,它返回`ERR!代码 EINTEGRITY` (npm 5.3.0)