我在Windows 7上运行了全新的node.js安装,我正在尝试运行一个名为a.js
的非常基本的JQuery脚本,该脚本只包含:
require("jquery");
$().jquery;
不幸的是,这不会与JQuery一起运行,给我一个TypeError:
C:\Users\Ian>node a.js
C:\Users\Ian\node_modules\jquery\lib\node-jquery.js:10
window.XMLHttpRequest.prototype.withCredentials = false;
^
TypeError: Cannot read property 'prototype' of undefined
at create (C:\Users\Ian\node_modules\jquery\lib\node-jquery.js:10:26)
at C:\Users\Ian\node_modules\jquery\lib\node-jquery.js:9435:18
at Object.<anonymous> (C:\Users\Ian\node_modules\jquery\lib\node-jquery.js:9437:2)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (C:\Users\Ian\a.js:1:63)
我通过Google发现了一些有关此错误的错误报告,其中大部分都建议降级JQuery。但是,当我这样做时,我只会得到一个不同的错误。以下是JQuery 1.6.3:
C:\Users\Ian>node a.js
module.js:340
throw err;
^
Error: Cannot find module 'location'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at create (C:\Users\Ian\node_modules\jquery\node-jquery.js:6:33)
at C:\Users\Ian\node_modules\jquery\node-jquery.js:9065:18
at Object.<anonymous> (C:\Users\Ian\node_modules\jquery\node-jquery.js:9067:2)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
任何人都可以提出可能出错的建议吗?我已经尝试了各种重新安装软件而没有运气。我已经为jquery的默认版本和jquery@1.6.3尝试了npm install -g
和npm install
。
编辑:This question - 尚未答复 - 似乎相关。
答案 0 :(得分:8)
如果您在节点0.10.x上运行...运行sudo npm rebuild
答案 1 :(得分:3)
在jquery-nodejs项目的git页面中,说这在Windows上不起作用,所以问题在于你的操作系统。 https://github.com/coolaj86/node-jquery
答案 2 :(得分:0)
您必须将模块分配给$
变量:
var $ = require('jquery');
$().jquery;
答案 3 :(得分:0)
我在REHL遇到了这个问题,sudo npm rebuild为我解决了这个问题。
答案 4 :(得分:0)
对于那些运行Windows的人来说, npm rebuild 可能无法正常工作,您可能仍会看到以下内容:
C:\Projects\NODE\paragraphs\node_modules\jquery\lib\node-jquery.js:10
window.XMLHttpRequest.prototype.withCredentials = false;
^
TypeError: Cannot read property 'prototype' of undefined
发现this solution感谢用户NeverI为我做了诀窍:
在node-jquery.js(位于\ node_modules \ jquery \ lib下)更改行:
if(window == null ) {
window = require('jsdom').jsdom().createWindow();
为:
if(!window || !window.document) {
window = require('jsdom').createWindow();
window.document = require('jsdom').jsdom();