Javascript 在Windows 7 x64下构建contextify(用于NodeJS jQuery)
我尝试让节点jquery工作contextify是依赖项之一(jsdom需要) contextify需要以某种方式使用Python构建。但这在Windows7x64上似乎不起作用。至少有一台计算机:) 经过一些阅读(,)和尝试一些二进制文件提供的这个和这个我可以得到它的工作 我从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.
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