【问题标题】:Running NodeJS on non-system drive在非系统驱动器上运行 NodeJS
【发布时间】:2013-04-01 23:01:53
【问题描述】:

设置:

我在 Windows 8 x64 机器上的系统 (C) 驱动器上安装了 NodeJS。我通过npm 全局安装了 QUnit:

npm install qunit -g

问题:

如果我尝试引用 QUnit:

var q = require('qunit');

从 C 驱动器上的任何目录运行 NodeJS 时,一切都按预期工作。但是,当我从位于辅助 E 驱动器上的项目目录中运行它时,Node 找不到我的全局安装包:

Error: Cannot find module 'qunit'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at repl:1:9
    at REPLServer.self.eval (repl.js:109:21)
    at rli.on.self.bufferedCmd (repl.js:258:20)
    at REPLServer.self.eval (repl.js:116:5)
    at Interface.<anonymous> (repl.js:248:12)
    at Interface.EventEmitter.emit (events.js:96:17)

在从我的辅助驱动器运行 NodeJS 时,我是否缺少其他一些配置以便能够使用全局安装的包?这只是不受支持吗?我不想在本地安装它们并将它们签入源代码管理,但如果全局包不能从辅助驱动器工作,它是一个备份选项。

【问题讨论】:

  • @Chase,谢谢,是的。这就是我所说的“全球”。我更新了问题以包括我的 qunit 安装命令以更清楚。
  • 我的错,我一定错过了那部分 =) 如果你想使用require(),那么你需要在本地安装它。我在下面添加了一个答案。希望对您有所帮助。

标签: javascript node.js npm qunit


【解决方案1】:

https://npmjs.org/doc/folders.html

  • 本地安装(默认):将内容放入当前包根目录的 ./node_modules 中。
  • 全局安装(使用 -g):将内容放入 /usr/local 或安装节点的任何位置。
  • 如果您要 require() 它,请在本地安装它
  • 如果要在命令行上运行它,请全局安装它。
  • 如果两者都需要,则在两个地方都安装它,或者使用 npm 链接。

为此,您可能需要考虑创建一个package.json 文件。其中应该包括给定项目的所有依赖项。然后你应该能够运行npm install 来为你的项目安装所有给定的依赖项。

有一个相关的答案 here 关于创建 package.json 文件。

【讨论】:

  • 谢谢@Chase!粗体线是我需要的。我会将本地模块文件夹检查到源代码管理中,然后完成。
  • 没问题,我很高兴它有帮助。
猜你喜欢
  • 2013-03-30
  • 2014-03-05
  • 2022-01-19
  • 1970-01-01
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
  • 2015-09-25
  • 2021-03-10
相关资源
最近更新 更多