【问题标题】:npm config - global vs localnpm config - 全局与本地
【发布时间】:2018-12-22 03:59:16
【问题描述】:

以下是有关该主题的相关文档:

https://docs.npmjs.com/cli/config

看起来这些是等价的:

npm config set foo bar
npm set -g foo bar

所以我想如果我在没有 -g 开关的情况下运行 npm set,那么它将更新我的本地 .npmrc 文件:

npm set foo bar

但是 npm set 没有 -g 标志并没有更新我的本地 .npmrc 文件。那么npm setnpm config set 到底有什么区别,-g 标志是干什么用的?

【问题讨论】:

  • 对于项目级别我只使用echo "foo=bar" >> .npmrc

标签: node.js npm npmjs npm-config


【解决方案1】:

npm 使用了 4 个 npmrc 文件(参考:https://docs.npmjs.com/files/npmrc.html)。

  1. 每个项目的配置文件 (/path/to/my/project/.npmrc)
  2. 每个用户的配置文件 (~/.npmrc)
  3. 全局配置文件 ($PREFIX/etc/npmrc)
  4. npm 内置配置文件 (/path/to/npm/npmrc)

它们是这样修改的:

  1. 似乎没有标准方法(命令)来为每个项目的配置文件设置值。我认为您必须使用文本编辑器进行编辑。

  2. 您使用npm [config] set 命令设置每个用户的值。

  3. 您使用npm [config] set -g 命令设置全局值。

  4. 您无需编辑内置版本

在你的情况下使用第一种方法。

【讨论】:

  • 嗨!这意味着如果我想将路径设置为 .npmrc 我使用 npm config set -g $path/npmrc ?
  • 从 v7 开始,有npm config -L|--location 参数。您可以指定globaluserproject。后者允许修改本地.npmrc
【解决方案2】:

npm 创建两个 .npmrc 文件。

  1. 一个是本地的(特定于每个用户)
  2. 和一个为所有用户存储配置的全局变量。

npm config 命令用于更新和检索 .npmrc 文件中的配置。

  • 当我们使用 -g 标志时,会对全局 .npmrc 文件进行更改。
  • 如果 -g 不存在,则对本地文件进行更改。

npm config setnpm set 两个命令做同样的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多