你可以在phantomJS中使用require()来使用npm模块吗?它似乎能够加载JavaScript文件,所以这可能吗?
答案 0 :(得分:16)
这完全取决于 nodejs 模块。如果 nodejs 模块需要通过本机函数接口提供一些支持,它将无法工作。(http,socket.io等npm模块不能在phantomjs上运行,因为它依赖于本机接口)
Pure JavaScript nodejs 模块也应该适用于 phantomjs 。
答案 1 :(得分:4)
fyi,phantomjs对commonjs的近似。
你不能在phantomjs中使用amd模块,我不知道任何在phantomjs中工作的amd加载器(如requirejs)
更新(2015) :我一直在PhantomJs 1.x和2.x中使用commonjs模块,它们可以很好地解决一个问题:你无法使用源代码-mapping(在文件的底部,看起来像//# sourceMappingURL=index.js.map
),因为它会导致PhantomJs模块加载器失败。否则,commonjs模块将正常加载。