在Windows 7 x64(NodeJS jQuery)下构build竞争对手

我试图让node-jquery工作。 contextify是依赖关系之一( jsdom需要)。

需要使用Python以某种方式构buildcontextify 。 但是,这似乎不适用于Windows 7 x64。 至less有一个我的电脑:)

经过一些阅读( #10 , #12 , #17 ),并尝试一些由这个叉提供的二进制文件,这一个我可以得到它的工作…

我从node-gyp configurenode-gyp rebuildnpm install jquery )得到同样的错误:

 info it worked if it ends with ok info downloading: http://nodejs.org/dist/v0.6.14/node-v0.6.14.tar.gz info downloading: http://nodejs.org/dist/v0.6.14/x64/node.lib info downloading: http://nodejs.org/dist/v0.6.14/node.lib spawn python [ 'D:\\Users\\ngryman\\.node-gyp\\0.6.14\\tools\\gyp_addon', 'binding.gyp', '-ID:\\Users\\ngryman\\build\\config.gypi', '-f', 'msvs', '-G', 'msvs_version=2010' ] File "D:\Users\ngryman\.node-gyp\0.6.14\tools\gyp_addon", line 40 print 'Error running GYP' ^ SyntaxError: invalid syntax ERR! Error: `gyp_addon` failed with exit code: 1 at ChildProcess.onCpExit (D:\Users\ngryman\AppData\Roaming\npm\node_modules node-gyp\lib\configure.js:226:16) at ChildProcess.emit (events.js:70:17) at maybeExit (child_process.js:360:16) at Process.onexit (child_process.js:396:5) ERR! not ok 

似乎有一个语法错误…我不是很舒服的Python。

这是我的版本:

  • Python:3.2.3
  • NodeJS:0.6.14

任何人有一个想法?

谢谢!

我设法build立它,但我可以说这真的很痛苦。 事实上,这是如此痛苦,它造成了暂时的失忆症,我忘了我是如何做到的。

除了python,你还需要Visual Studio。

无论如何,我有二进制文件,我只是上传到gihub:
https://github.com/mihaifm/jsdom_binaries

只需克隆该回购,复制node_modules里面的node_modules到你的项目,你很好走!

更新(2013年3月)

这些二进制文件不再需要(至less不适用于安装了VS2010的Win7)。 现在可以使用npm来安装jsdomjsdom

 npm install jsdom npm install contextify 

(您仍然需要python和MS C ++编译器,如node-gyp的要求中所述)

我更新了回购,以防万一任何人仍然有麻烦安装。

我能够在Windows 7(x64)上使用节点0.8.11(x64)和Python 2.7.3成功构buildnode-jquery。 这是我的jQuery结构看起来像:

 ┬ jquery@1.7.3 ├── htmlparser@1.7.6 ├─┬ jsdom@0.2.19 │ ├─┬ contextify@0.1.3 │ │ └── bindings@1.0.0 │ ├── cssom@0.2.5 │ ├── cssstyle@0.2.3 │ └─┬ request@2.11.4 │ ├─┬ form-data@0.0.4 │ │ ├── async@0.1.22 │ │ └─┬ combined-stream@0.0.3 │ │ └── delayed-stream@0.0.5 │ └── mime@1.2.7 ├── location@0.0.1 ├── navigator@1.0.1 └── xmlhttprequest@1.4.2 

根据node-gyp的作者https://github.com/TooTallNate/node-gyp/issues/155

雅,Python 3和Python 2不兼容,但是gyp需要Python 2。

如果你不需要Contextify的全部function,那么Cheerio在Windows上安装起来要快得多 ,而且容易得多,而且提供了大部分的服务器端的jQuery函数。

http://matthewmueller.github.com/cheerio/

我使用它来构build它

  • Windows 8 x64 DP
  • Python 2.7(在PATH上)
  • 节点0.8.11 x86(在PATH上)
  • Visual Studio 2010(需要安装“Visual C ++”function)

在我的GitHub仓库中可以find对0.1.3二进制文件(可能只用于32位Node版本)的调整。 他们与jsdom 0.2.18(2012-10-13当前版本)一起工作。

从jsdom readme.md:

视窗

  • x86版本的[Node.js for Windows]的最新副本, 而不是 x64版本。
  • Visual C ++ 2010 Express的副本。
  • 一个[Python 2.7]的副本,安装在C:\Python27的默认位置。

我做到了这一点,它工作得很好,除了对我来说,x64版本也是如此。

最简单的方法是安装windows-build-tools软件包。 这就是你需要build立的一切。 从具有pipe理员权限的Power Shell提示符运行该命令。

 npm install --global --production windows-build-tools 

https://www.npmjs.com/package/windows-build-tools

这些工具是编译stream行的本地模块所必需的。 它也将安装Python 2.7 ,适当地configuration你的机器和npm。

内容

  • Visual C ++编译器(针对x86,X64和ARM)
  • Visual C ++编译器(针对x86,X64和ARM)
  • Visual C ++头文件和库(CRT和STL)
  • Visual C ++构build脚本(针对Windows桌面)
  • 微软构build工具2015(MSBuild)
  • Windows SDK 8.1(可选,默认情况下)
  • Windows SDK 10(可选,默认closures)
  • ATL和MFC(可选,默认closures)
  • C ++构build工具特定的命令提示符

我必须确保我使用Python 2.7.3并以pipe理员身份运行cmd行(右键单击以pipe理员身份运行)。

> python --version

我使用它来构build它

  • Windows 7 x64
  • Python 2.7.3
  • 节点0.8.17
  • Visual Studio 10