繁体   English   中英

如何查看当前正在使用哪个.npmrc 文件

[英]How can I see which .npmrc file is being currently used

我在 npm 和我用npm安装的软件包中遇到问题。 当我安装 package "@date-io/core"使用npm package 管理器— 然而,一切都按预期工作; 当我使用纱线安装相同的 package 作为 package 管理器时,出现错误并打印以下消息:

error couldn't find package "@date-io/core" on the "npm" registry.

我怀疑这是由于npm用于从.npmrc文件获取配置的 scope 层次结构而发生的。 我需要找出安装 package 时使用的 .npmrc 文件的位置,但我不知道如何找到。

有谁知道是否有可能获得npm对任何给定的.npmrc命令使用的 .npmrc 的位置? 例如,如果我执行npm install some-package ,无论我从哪里执行命令,有没有办法知道 npm 用于配置自身的.npmrc文件?


编辑:

2022 年 - 3 月 20 日 - 太平洋标准时间 20:44

“如果您还没有阅读下面的原始答案,那么此编辑可能没有多大意义。”

此答案不适用于早于Node v14.0.0的 Node.js 版本该解决方案适用于: ^14.0.0 )。 @jonSakas 在评论中指出了这一点,他有足够的洞察力知道 NPM CLI 的publish命令在使用以下标志--dry-run --verbose如下所示:

npm publish --dry-run --verbose

...不打印系统.npmrc文件的位置。

编辑结束



NPMRC 文件位置:内容和位置

NPM 配置文件可以而且将会存在于任何正在开发 Node 项目的给定环境中的不同级别。 据我所知,具体分为三个级别,分别是:

  1. 内置npmrc文件
  2. 全局npmrc文件
  3. 用户的.npmrc文件。



可能没有必要知道全局 NPM 配置文件在哪里。

有几个是您可以找出您正在使用的.npmrc文件的位置,但您不需要这样做。 对于您拥有的任何项目,将 .npmrc 文件粘贴到根目录中,就在${rootDir}/node_modules/${rootDir}/package.json 项目级.npmrc将覆盖任何其他正在更改项目的 NPM 文件。 我从来没有 NPM 改变过一个项目,除非我改变了一个配置文件,这意味着我知道这个文件和它在哪里。 如果出于某种原因,你仍然需要找到一个.npmrc ,并且更改项目级别的.npmrc文件对你没有帮助,你可能不想使用npm config edit的原始版本,因为那样只会配置项目级别 npm 文档,我认为如果没有,它会创建一个,所以它基本上按照我所处的切线开头建议的进行操作。

相反,将 -g 放入命令中,这样您就可以打开全局.npmrc配置文件,就像这样......

npm config -g edit

你让我恍然大悟,你实际上有另一种方法可以查看哪些配置文件处于活动状态。 我认为这种方式向您显示 npm 查看的文件路径,以查看是否存在 NPM 文件。

输入以下...

npm publish --dry-run --verbose

如果没有要发布的 package,或者您有要发布的 package,但还没有准备好发布,请不要担心。 我选择 publish dry-run 命令,因为它假设不进行任何更改。 当没有 package 存在时,它不会工作,但它仍会打印您想要的日志信息。 当我这样做时,它打印了以下内容。
jayd3v@jayd3v-XPS-8910:~$ npm publish --dry-run --verbose
npm verb cli [
npm verb cli   '/home/jayd3v/.nvm/versions/node/v17.6.0/bin/node',
npm verb cli   '/home/jayd3v/.nvm/versions/node/v17.6.0/bin/npm',
npm verb cli   'publish',
npm verb cli   '--dry-run',
npm verb cli   '--verbose'
npm verb cli ]
npm info using npm@8.5.2
npm info using node@v17.6.0
npm timing npm:load:whichnode Completed in 1ms
npm timing config:load:defaults Completed in 1ms
npm timing config:load:file:/home/jayd3v/.nvm/versions/node/v17.6.0/lib/node_modules/npm/npmrc Completed in 0ms
npm timing config:load:builtin Completed in 1ms
npm timing config:load:cli Completed in 1ms
npm timing config:load:env Completed in 0ms
npm timing config:load:project Completed in 2ms
npm timing config:load:file:/home/jayd3v/.npmrc Completed in 1ms
npm timing config:load:user Completed in 1ms
npm timing config:load:file:/home/jayd3v/.nvm/versions/node/v17.6.0/etc/npmrc Completed in 0ms
npm timing config:load:global Completed in 0ms
npm timing config:load:validate Completed in 0ms
npm timing config:load:credentials Completed in 0ms
npm timing config:load:setEnvs Completed in 1ms
npm timing config:load Completed in 8ms
npm timing npm:load:configload Completed in 8ms
npm timing npm:load:setTitle Completed in 0ms
npm timing config:load:flatten Completed in 2ms
npm timing npm:load:display Completed in 6ms
npm verb logfile /home/jayd3v/.npm/_logs/2022-03-01T22_15_38_103Z-debug-0.log
npm timing npm:load:logFile Completed in 3ms
npm timing npm:load:timers Completed in 0ms
npm timing npm:load:configScope Completed in 0ms
npm timing npm:load Completed in 19ms
npm verb publish [ '.' ]

您可以看到它向我展示了它试图从中提取配置文件 ('.npmrc') 的三个区域。 它甚至命名了哪个是哪个



内置npmrc

npm timing config:load:file:/home/jayd3v/.nvm/versions/node/v17.6.0/lib/node_modules/npm/npmrc Completed in 0ms
npm timing config:load:builtin Completed in 1ms


用户.npmrc

npm timing config:load:file:/home/jayd3v/.npmrc Completed in 1ms
npm timing config:load:user Completed in 1ms


全局npmrc

npm timing config:load:file:/home/jayd3v/.nvm/versions/node/v17.6.0/etc/npmrc Completed in 0ms
npm timing config:load:global Completed in 0ms



正如@cbr指出的那样,您可以使用以下命令编辑配置:

npm config edit

您还可以根据文档检查npmrc的这些路径:四个相关文件是:

  • 每个项目的配置文件(/path/to/my/project/.npmrc)
  • 每个用户的配置文件(默认为 $HOME/.npmrc;可通过 CLI 选项 --userconfig 或环境变量 $NPM_CONFIG_USERCONFIG 配置)
  • 全局配置文件(默认为 $PREFIX/etc/npmrc;可通过 CLI 选项 --globalconfig 或环境变量 $NPM_CONFIG_GLOBALCONFIG 配置)
  • npm内置的配置文件(/path/to/npm/npmrc)

这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM