Troubles with NPM and node-gyp in Windows

2019-01-26 19:06发布

问题:

I have some troubles with npm packages on my Windows workstation... I have a set of NPM dependencies in my package.json file:

"devDependencies": {
    "babel-plugin-transform-react-jsx": "^6.2.0",
    "babel-preset-es2015": "^6.1.18",
    "babel-preset-react": "^6.1.18",
    "grunt": "^0.4.5",
    "grunt-babel": "^6.0.0",
    "grunt-contrib-connect": "^0.11.2",
    "grunt-contrib-jasmine": "^0.9.2",
    "grunt-contrib-sass": "^0.9.2",
    "grunt-contrib-watch": "^0.6.1",
    "grunt-exec": "^0.4.6",
    "grunt-template-jasmine-requirejs": "^0.2.3",
    "karma-chrome-launcher": "^0.2.2",
    "karma-firefox-launcher": "^0.1.7",
    "karma-requirejs": "^0.2.2",
    "requirejs": "^2.1.22",
    "grunt-contrib-jshint": "^0.11.3",
    "grunt-karma": "^0.12.1",
    "karma": "^0.13.15",
    "karma-jasmine": "^0.3.6",
    "karma-phantomjs-launcher": "^0.2.1"
  }

And when I trying to run npm install I get the strange error related to node-gyp package and something like \msbuild.exe.

Here is the error:

c:\Users\dmytro.medvid\sites\evolution\node_modules\utf-8-validate>if not defined npm_config_node_gyp (node "c:\Program Files\nodejs\node_modules\npm\bin\node-gyp
-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node  rebuild )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
c:\Users\dmytro.medvid\sites\evolution\node_modules\utf-8-validate\build\validation.vcxproj(20,3): error MSB4019: The imported project "c:\Microsoft.Cpp.Default.
props" was not found. Confirm that the path in the  declaration is correct, and that the file exists on disk.
gyp ERR! build error
gyp ERR! stack Error: `C:\windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (c:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "c:\\Program Files\\nodejs\\node.exe" "c:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd c:\Users\dmytro.medvid\sites\evolution\node_modules\utf-8-validate
gyp ERR! node -v v5.1.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm WARN install:utf-8-validate@1.2.1 utf-8-validate@1.2.1 install: `node-gyp rebuild`
npm WARN install:utf-8-validate@1.2.1 Exit status 1
npm WARN EPACKAGEJSON evolution@1.0.0 No repository field.

Can someone help to figure out with it issue? I'm not experienced windows user, but at the moment I should work with Windows :(

UPDATED: Here is the errors log which I update every time with new NPM errors.

System details: Windows 7 Enterprice 64-bit operating system

Node version: v5.1.0

NPM version: v3.3.12

Python Version: v2.7.1

Also I installed Microsoft Visual C++ build tools (provided in answer below). Version 14.0

回答1:

You need Microsoft Visual C++ build tools, which are packaged with Visual Studio. However, they are now also available as a standalone download. After installing these tools and restarting your computer, you should be able to install packages that use node-gyp under the hood.



回答2:

Write those code in admin command prompt:

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

And then hit enter.



回答3:

Windows open PowerShell in administrative tool and run this command

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


回答4:

I created an issue on github for node-gyp. And also here is a disscussion of a similar problem. Probaly it not helped me, but maybe it can be useful for someone else.