dr3*_*r3w 1 jquery node.js cloud9-ide jsdom contextify
我有兴趣为一个项目做一些服务器端的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
??? htmlparser@1.7.6
??? request@2.10.0
Run Code Online (Sandbox Code Playgroud)另外,这是我的cloud9工作区,不要害羞地玩.
任何帮助赞赏.也许还有其他更好的完成我想要的.
谢谢.
Cheerio是一个不久前出现的新模块,它比jsdom更简单易用,并且可以访问jsdom可以运行的许多问题.
jsdom很棒但是如果你需要解析你必须使用html5解析器模块的非有效HTML,它可能真的很难使用,这非常慢,并且所有东西都不是开发友好的.
还有PhantomJS要考虑:
http://phantomjs.org我的bootstrap开始使用jQuery.
https://github.com/sgentle/phantomjs-node(这是一个黑客,我说不出话来)
| 归档时间: |
|
| 查看次数: |
2421 次 |
| 最近记录: |