在Windows 7 x64(NodeJS jQuery)下构build竞争对手
我试图让node-jquery工作。 contextify是依赖关系之一( jsdom需要)。
需要使用Python以某种方式构buildcontextify 。 但是,这似乎不适用于Windows 7 x64。 至less有一个我的电脑:)
经过一些阅读( #10 , #12 , #17 ),并尝试一些由这个叉提供的二进制文件,这一个我可以得到它的工作…
我从node-gyp configure
或node-gyp rebuild
( npm 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
来安装jsdom
和jsdom
:
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函数。
我使用它来构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