【问题标题】:npm won't install packages locally. What's wrong?npm 不会在本地安装包。怎么了?
【发布时间】:2012-06-14 15:40:03
【问题描述】:

我想在本地安装包,但 npm 总是将包安装到全局位置。我正在运行以下命令:

npm install serialport

我没有 .npmrc 命令,也没有使用 -g 标志,所以我不知道为什么它没有在本地安装。这是配置转储中的一个 sn-p,显示 global 为 false: $ npm 配置 ls -l | grep 全局 全局 = 假 globalconfig = "/usr/local/etc/npmrc" globalignorefile = "/usr/local/etc/npmignore"

而且包还是这样安装的

serialport@0.7.3 ../../../../node_modules/serialport

因此,除非我对“本地”的含义完全错误,否则这似乎是错误的。我的印象是“本地”意味着在当前工作目录中,以便我可以在我的主代码文件中执行“要求”。请参阅:http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/,如上一个与 npm 相关的问题中所引用。

有人可以给我一些提示吗?非常感谢。

附:它不是特定于串行端口模块的。所有人都在发生这种情况。

【问题讨论】:

    标签: node.js installation global local npm


    【解决方案1】:

    如果您尝试安装软件包的文件夹中有 package.json 文件,那么它将正确创建 node_modules 文件夹。

    基本包.json

    {
        "name": "application-name",
        "version": "0.0.1"
    }
    

    【讨论】:

      【解决方案2】:

      我的大部分答案都可以找到:http://npmjs.org/doc/folders.html#More-Information

      据我了解,npm 会尝试将其安装在合理的位置。因此,如果你有一个project/node_modules 目录并且你在 /project 并执行 npm install 它将使用product/node_modules

      现在,如果您不小心执行了 cd project/css 并执行了 npm install,那么 npm 将向上遍历直到找到您的 node_modules 目录。这是为了防止您不小心将其安装在您的project/css 中。

      因此,在您的情况下,您的项目路径中有一个 node_module 目录。所以我的猜测是,您可以通过删除该目录或在项目文件夹中手动创建 node_modules 目录来修复它。

      【讨论】:

      • 是的,我刚刚发现自己并试图回答我自己的问题,但新用户要等到 8 小时后才能这样做。这是我发现的解释它的内容。 stackoverflow.com/questions/6514621/npm-install-locally
      • 不用担心,在找到该文档页面之前,我实际上并不是 100% 确定的。
      • 你的答案几乎是正确的,但是这个文件夹叫做 node_module s
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-20
      • 2017-08-25
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 2018-06-18
      相关资源
      最近更新 更多