Building contextify under Windows 7 x64 (for NodeJS jQuery)

对着背影说爱祢 提交于 2019-12-03 05:19:05

I managed to build it, but I can say it was really painful. In fact it was so painful that it caused temporary amnesia and I forgot how I did it.

You need Visual Studio as well, apart from python.

Anyway, I have the binaries, I just uploaded them to gihub:
https://github.com/mihaifm/jsdom_binaries

Just clone that repo, copy what's inside node_modules to your project, and you're good to go!

Update (march 2013)

These binaries are no longer needed (at least not for Win7, with VS2010 installed). jsdom and contextify can now be installed just with npm:

npm install jsdom
npm install contextify

(you still need python and a MS C++ compiler, as mentioned in the requirements for node-gyp)

I updated the repo as well, just in case anyone still has trouble installing.

I was able to successfully build node-jquery on Windows 7(x64) with node 0.8.11(x64), and Python 2.7.3. Here's what my jquery structure looks like:

┬ 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

according to the author of node-gyp https://github.com/TooTallNate/node-gyp/issues/155

Ya, Python 3 and Python 2 are not compatible, however gyp requires Python 2.

If you don't need the full feature-set of Contextify, Cheerio is much faster and much easier to install on Windows, and provides most of the jQuery functions you would use server-side.

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

I built it using

  • Windows 8 x64 DP
  • Python 2.7 (on PATH)
  • Node 0.8.11 x86 (on PATH)
  • Visual Studio 2010 (requires installed 'Visual C++' feature)

contextify 0.1.3 binaries (probably only working with the 32-bit Node version) can be found at my GitHub repo. They work together with jsdom 0.2.18 (current version as of 2012-10-13).

From the jsdom readme.md:

Windows

  • A recent copy of the x86 version of [Node.js for Windows], not the x64 version.
  • A copy of Visual C++ 2010 Express.
  • A copy of [Python 2.7], installed in the default location of C:\Python27.

I did exactly this and it worked fine, except that for me the x64 version worked as well.

The easiest way is to install the windows-build-tools package. That has everything you need to build contextify. Run the command from an power shell prompt running with administrator rights.

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

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

These tools are required to compile popular native modules. It will also install Python 2.7, configuring your machine and npm appropriately.

Contents

  • Visual C++ Compilers (targeting x86, X64 and ARM)
  • Visual C++ Compilers (targeting x86, X64 and ARM)
  • Visual C++ headers & libraries (CRT & STL)
  • Visual C++ build scripts (targeting Windows desktop)
  • Microsoft Build Tools 2015 (MSBuild)
  • Windows SDK 8.1 (optional, on by default)
  • Windows SDK 10 (optional, off by default)
  • ATL and MFC (optional, off by default)
  • C++ Build tools specific command prompts

I had to make sure I was using Python 2.7.3 and running the cmd line as administrator (right click run as administrator).

> python --version

I built it using

  • Windows 7 x64
  • Python 2.7.3
  • Node 0.8.17
  • Visual Studio 10
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!