0

我已经在我的 Windows 8.1 机器上安装了 jsdom。

如果我是本地安装的 jsdom 之上的一个目录,我可以调用

node jsdom

一切正常。

但是,如果从同一个目录/密码,我调用一个脚本(在不同的路径)

require("jsdom").jsdom;

我得到类型的错误

Error: cannot find module 'jsdom'
4

1 回答 1

10

Node 的 CLI 和require()行为略有不同:

node path解决使用path.resolve

  • 表现得就像您期望您的操作系统解析路径一样。

require(path)解决使用require.resolve

  • 确切的行为有点复杂,但基本上如果字符串的开头看起来像包名,它会寻找node_modules匹配的包(即看起来不像以./, /,../等开头的文件系统路径)。

在您的情况下,您可以使用 NPM 安装模块(首选):

npm install jsdom --save

require("jsdom").jsdom;

或者,如果您已手动将文件添加到文件系统,则直接包含该文件:

require("./jsdom.js").jsdom;
于 2013-11-14T05:07:00.187 回答