简体   繁体   中英

npm install jsdom error on windows?

I have installed nodejs on my windows pc. And it was working fine. But when I tried to install jsdom using "npm install jsdom" I was prompoted by this error.

node "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\node-gyp-bin\\....\\node_modules\\node-gyp\\bin\\node-gyp.js" rebuild info it worked if it ends with ok
ERR! Error: Python does not seem to be installed
at failNoPython (C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\lib\\configure.js:78:14) at Object.oncomplete (C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\lib\\configure.js:66:11) ERR! not ok
npm WARN optional dependency failed, continuing contextify@0.1.2
jsdom@0.2.13 ./node_modules/jsdom
+-- cssom@0.2.3 +-- htmlparser@1.7.5

Can anyone help me regarding this problem?

I had the same issue on Windows 7 (x64 Ultimate), after hours of search and trials, here is how I resolved it. Please follow the steps in the same exact order:

  1. Install Visual Studio 2010/2012 C++ (Express or higher)
  2. Install Windows SDK 7.1
  3. Install "Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1"
  4. Install GTK (C:\\GTK)
  5. Install Python (C:\\Python27)
  6. Install node.js (x86)
  7. Add [node.js] to path (C:\\Program Files (x86)\\nodejs\\;)
  8. Add [python] to path (C:\\Python27\\;)
  9. Add [GTK] to path (C:\\GTK\\bin;)
  10. Add [WindowsSDKDir] System Variable pointing to "C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Bin"
  11. Run "Windows SDK 7.1 Command Prompt" as Administrator
  12. Set environment to x86 using "setenv /x86"
  13. Change directory to "C:\\Program Files (x86)\\nodejs\\"
  14. Run "npm install -g npm"
  15. Run "npm update -g npm"
  16. Run "npm install -g node-gyp"
  17. Run "node-gyp configure build"
  18. Run "npm install jsdom"
  19. Run "npm install ajax"
  20. Run "npm install http-server"
  21. Run "npm install jquery"
  22. Run "npm install xmlhttprequest"
  23. Run "npm update"

I hope this helps.

这里有一个很好的指南让JSDom在Windows上工作: http//www.steveworkman.com/node-js/2012/installing-jsdom-on-windows/

For windows 8 64-bit, installing zmq and protobuf, the following worked for me:

First, Install Visual Studio 2012

Then, on the command prompt (in your project directory):

SET VisualStudioVersion=11.0
npm install zmq
npm install protobuf
npm install jsdom

jsdom uses contextify for running JavaScript on the DOM. And contextify requires native C++ compiler. According to the official readme , on Windows platform, one has to install:

  1. A recent copy of the x86 version of Node.js for Windows, not the x64 version. (should be okay by default)
  2. A copy of Visual C++ 2010 Express. (or any newer version)
  3. A copy of Python 2.7, installed in the default location of C:\\Python27 .

jsdom has a dependency on contextify, which only recently supports windows. You'll need python and a C++ compiler to install it.

You may also need to do the following

npm install -g node-gyp
node-gyp configure

If you have python installed already, you would need to add the python install directory to the PATH environment variable.

Assuming that python.exe is in the C:\\Python32\\ directory, on the DOS prompt you need to type:

set PATH=%PATH%;C:\\Python32\\;

and then:

node-gyp configure

should work fine without that error.

After almost a half year of solving this issue, reading all forums related to this, I finally found the solution.

What I did was simple in my case because I don't use many apps on this computer.

My Windows 8.1 had many programs installed which confused the NodeJS probably (Frameworks, VS addons, etc.).

So I simply did this:

  • Removed all programs from MS, that I installed once.
  • Uninstalled Nodejs
  • For sure I cleaned the registry with CCleaner
  • Removed Python, Node-gyp and other apps related to Node.js

Then I reinstalled Node.js with optimism for JSdom which installed correctly, but crashed while running my project. So I searched for the new error which - again - has a simple solution. I had to install an older version of JSdom.

npm install jsdom@4.2.0

Finally, everything works. Hope that helps anyone with this issue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM