我有兴趣为一个项目做一些服务器端的DOM操作,所以我决定看看node.js,特别是在jsdom.我对node.js完全不熟悉,所以我的错误可能是显而易见的,但是我从来没有找到解决我问题的方法......
首先,我在本地运行Windows节点,并使用在线IDE cloud9
值得一提的是,因为我在安装最新的节点jsdom包(0.2.15)时遇到了麻烦,因为在Windows下无法编译所需的依赖性上下文(需要C++和Python,因为我发现npm不支持构建C++包) .所以我采取了两种替代方法:
我安装了一个不依赖于contextify的旧版本,即jsdom@0.2.1.这是我目前拥有的npm列表
??? jsdom@0.2.1
??? cssom@0.2.5
??? htmlparser@1.7.6
??? request@2.10.0
Run Code Online (Sandbox Code Playgroud)
当我试图运行从jsdom github repo cloud9 采取的简单测试脚本时返回此警告
The "sys" module is now called "util". It should have a similar
Run Code Online (Sandbox Code Playgroud)
我试图解决这个问题取代所有提到的sys到util,错误消失了......(仍然不太确定这是正确的事情,虽然......).所以,最后当我试图运行这个片段时
var jsdom = require("jsdom");
jsdom.env("http://nodejs.org/dist/", [
'http://code.jquery.com/jquery-1.5.min.js'
],
function(errors, window) {
console.log("there have been", window.$("a").length, "nodejs releases!");
});
Run Code Online (Sandbox Code Playgroud)
我发现了那个window.$ === undefined.试图在cloud9上运行节点v0.6.x和节点v0.4.x,在本地运行节点v0.8.7.
我尝试做的另一件事是安装最新的jsdom@0.2.15,从这里获得编译的上下文,安装绑定并将其添加到contextify/node_modules,因为contextify依赖于它.我根本无法使它工作=(没有浪费太多时间,因为它似乎是一种错误的方法,并且上下文不是最新的.
这是npm列表
??? jsdom@0.2.15
??? contextify@0.1.2
? ??? bindings@1.0.0
??? cssom@0.2.5
??? …Run Code Online (Sandbox Code Playgroud)