15

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

contextify需要以某种方式使用 Python 构建。但这似乎不适用于 Windows 7 x64。至少一台我的电脑:)

经过一些阅读(#10#12#17)并尝试了这个fork和这个提供一些二进制文件,我可以让它工作......

我从 ( )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 不是很满意。

这是我的版本:

  • 蟒蛇:3.2.3
  • 节点JS:0.6.14

有人有想法吗?

谢谢!

4

7 回答 7

14

我设法建造了它,但我可以说它真的很痛苦。事实上,它是如此痛苦以至于它导致了暂时的健忘症,我忘记了我是怎么做到的。

除了 python,你还需要 Visual Studio。

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

只需克隆该存储库,将里面的内容复制node_modules到您的项目中,您就可以开始了!

更新(2013 年 3 月)

不再需要这些二进制文件(至少对于安装了 VS2010 的 Win7 不需要)。jsdom现在contextify可以安装npm

npm install jsdom
npm install contextify

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

我也更新了 repo,以防万一有人仍然无法安装。

于 2012-04-19T19:58:03.760 回答
3

我能够使用节点 0.8.11(x64) 和 Python 2.7.3 在 Windows 7(x64) 上成功构建 node-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。

于 2012-10-29T18:13:23.177 回答
3

如果您不需要 Contextify 的完整功能集,那么 CheerioWindows上安装起来更快、更容易,并提供您将在服务器端使用的大部分 jQuery 功能。

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

于 2013-03-31T06:51:49.767 回答
2

我用

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

contextify 0.1.3 二进制文件(可能仅适用于 32 位 Node 版本)可以在我的 GitHub 存储库中找到。它们与 jsdom 0.2.18(截至 2012-10-13 的当前版本)一起工作。

于 2012-10-13T22:25:23.887 回答
1

来自 jsdom readme.md:

视窗

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

我确实做到了这一点,并且效果很好,除了对我来说 x64 版本也可以。

于 2014-01-16T14:58:20.520 回答
1

最简单的方法是安装windows-build-tools软件包。这拥有构建 contextify 所需的一切。从以管理员权限运行的 power shell 提示符运行该命令。

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

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

这些工具是编译流行的本机模块所必需的。它还将安装Python 2.7,适当地配置您的机器和 npm。

内容

  • Visual C++ 编译器(针对 x86、X64 和 ARM)
  • Visual C++ 编译器(针对 x86、X64 和 ARM)
  • Visual C++ 头文件和库(CRT 和 STL)
  • Visual C++ 构建脚本(针对 Windows 桌面)
  • 微软构建工具 2015 (MSBuild)
  • Windows SDK 8.1(可选,默认开启)
  • Windows SDK 10(可选,默认关闭)
  • ATL 和 MFC(可选,默认关闭)
  • C++ 构建工具特定的命令提示符
于 2016-09-14T14:28:29.630 回答
0

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

> python --version

我用

  • 视窗 7 x64
  • Python 2.7.3
  • 节点 0.8.17
  • 视觉工作室 10
于 2013-01-24T20:17:11.390 回答