【发布时间】:2014-12-12 04:25:15
【问题描述】:
我是 nodejs 的新手。
我安装了全局模块 zepto 和 jsdom :
npm install jsdom -g
npm install zepto -g
我检查了npm list -g。这些模块已安装。
但是当我使用 require 在脚本中引用这两个模块时:
var jsdom = require("jsdom");
var Zepto = require("zepto");
我收到一条错误消息:
Error: Cannot find module 'zepto'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/user554/dev/exchange/bin/getExchangeData.js:6:13)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
我只尝试了 jsdom 和 zepto。只有 Zepto 失败了。
我错过了什么?感谢您的帮助。
【问题讨论】:
-
到
require()一个模块,安装它locally。全局包仅用于从命令行使用。如果您需要两种用途,则必须在两个位置都安装它。文档:npm-folders. -
谢谢,但它似乎不符合我的需要。我想在许多具有相同模块的脚本中使用 node.js。所以维护相同文件的多个副本是很疯狂的。
-
本地化安装通常只针对整个模块的版本依赖。 NPM 仅在给定路径中安装模块的一个版本。通过在每个应用程序中使用全局模块,您可能必须一次修改所有应用程序以支持更新模块,或者如果一个应用程序根本无法支持更新,则必须推迟。
-
我明白你的意思。但是你认为只有在出现兼容性问题时才在本地安装它。直到今天,它会更容易维护。关于我使用的模块和我使用它们的方式,应该很长一段时间才会没有复古兼容性。
标签: javascript node.js zepto