Javascript 在Windows 7 x64下构建contextify(用于NodeJS jQuery)

Javascript 在Windows 7 x64下构建contextify(用于NodeJS jQuery),javascript,node.js,jsdom,Javascript,Node.js,Jsdom,我尝试让节点jquery工作contextify是依赖项之一(jsdom需要) contextify需要以某种方式使用Python构建。但这在Windows7x64上似乎不起作用。至少有一台计算机:) 经过一些阅读(,)和尝试一些二进制文件提供的这个和这个我可以得到它的工作 我从node gyp configure或node gyp rebuild(npm install jquery)得到了相同的错误: 似乎有语法错误。。。我对Python不是很熟悉 以下是我的版本: Python:3.2.

我尝试让节点jquery工作contextify是依赖项之一(jsdom需要)

contextify需要以某种方式使用Python构建。但这在Windows7x64上似乎不起作用。至少有一台计算机:)

经过一些阅读(,)和尝试一些二进制文件提供的这个和这个我可以得到它的工作

我从
node gyp configure
node gyp rebuild
npm install jquery
)得到了相同的错误:

似乎有语法错误。。。我对Python不是很熟悉

以下是我的版本:

  • Python:3.2.3
  • NodeJS:0.6.14
有人有主意吗


谢谢

我成功地建造了它,但我可以说它真的很痛苦。事实上,这太痛苦了,导致了暂时的健忘症,我忘了我是怎么做到的

除了python之外,您还需要VisualStudio

不管怎样,我有二进制文件,我刚刚把它们上传到gihub:

只需克隆该repo,将
node\u模块中的内容复制到您的项目中,您就可以开始了

更新(2013年3月)

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

npm install jsdom
npm install contextify

(您仍然需要Python和MSC++编译器,如在要求)中提到的

我还更新了回购协议,以防有人在安装时遇到问题。

我使用

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

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

我能够在Windows 7(x64)上成功构建节点jquery,节点为0.8.11(x64)和Python 2.7.3。 以下是我的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
根据节点gyp的作者

Ya、Python3和Python2不兼容,但是gyp需要 Python 2


我必须确保我使用的是Python2.7.3,并以管理员身份运行cmd行(右键单击Runasadministrator)

>python--版本

我用

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

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


来自jsdom readme.md:

窗户
  • 是x86版本[Node.js for Windows]的最新副本,而不是x64版本
  • 一份
  • [Python 2.7]的副本,安装在
    C:\Python27
    的默认位置

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

最简单的方法是安装
windows构建工具
软件包。它拥有构建contextify所需的一切。在具有管理员权限的powershell提示符下运行该命令

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

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

内容

  • Visual C++编译器(瞄准x86、x64和arm)
  • Visual C++编译器(瞄准x86、x64和arm)
  • VisualC++标题和库(CRT和STL)
  • Microsoft生成工具2015(MSBuild)
  • Windows SDK 8.1(可选,默认打开)
  • Windows SDK 10(可选,默认关闭)
  • ATL和MFC(可选,默认关闭)
  • C++生成工具特定的命令提示

我想你为什么使用x64版本?32位版本在Windows 7 x64上运行良好。x64正是我操作系统的版本。因为我看到了。您是否使用64位版本的Node.js。我在Win7 x64和contextify上使用节点32位,您可以尝试:更新到节点0.6.15,切换到Python 2.7:-?它可能与Python 3不兼容,你安装了VisualC++吗?更新到节点0.6.15(32位),Python2.7(32位)它的工作原理就像魅力:)谢谢!非常感谢:)即使我仍然不知道如何构建它,这也解决了我的问题。二进制文件是一个巨大的帮助(谢谢!),但开发人员应该注意它们上次更新是在2012年4月。@Simon你说得对,但是这些已经不再需要了
jsdom
contextify
现在只需使用
npm安装就可以了
@mihai哦,亲爱的,所以这仍然非常痛苦,二进制文件可能仍然有用。我不想只为了安装一个简单的节点模块就必须下载并安装600mb+Visual Studio Express。在使用VS 2010 Express的x64 Win7计算机上,它只在我添加--arch=ia32时起作用,例如,
npm install jsdom--arch=ia32
。如果没有,它将失败,出现“InvalidPlatform…错误MSB8007”。在发布二进制文件时,帽子提示为+1(耶!),尽管它们现在已经相当过时了。对!后来我发现了这一点。谢谢你提到它。这应该是真正可以接受的答案,非常简单和优雅的解决方案
npm install --global --production windows-build-tools