npm安装失败,因为node-gyp失败。 怎么修?

我最近试图为我们的项目做一个干净的安装。 但是现在npm install在Ubuntu 17.04上失败了。 我已经改变了节点,npm,node-gyp和python的版本,我没有成功。

这是由于对node-gyp或其他东西的改变? 运行:

node-gyp rebuild 

给我:

  gyp info it worked if it ends with ok gyp info using node-gyp@3.6.2 gyp info using node@7.10.1 | linux | x64 gyp info spawn /usr/bin/python2 gyp info spawn args [ '/usr/local/lib/node_modules/node-gyp/gyp/gyp_main.py', gyp info spawn args 'binding.gyp', gyp info spawn args '-f', gyp info spawn args 'make', gyp info spawn args '-I', gyp info spawn args '/home/joel/workspace/Tracker3/build/config.gypi', gyp info spawn args '-I', gyp info spawn args '/usr/local/lib/node_modules/node-gyp/addon.gypi', gyp info spawn args '-I', gyp info spawn args '/home/joel/.node-gyp/7.10.1/include/node/common.gypi', gyp info spawn args '-Dlibrary=shared_library', gyp info spawn args '-Dvisibility=default', gyp info spawn args '-Dnode_root_dir=/home/joel/.node-gyp/7.10.1', gyp info spawn args '-Dnode_gyp_dir=/usr/local/lib/node_modules/node-gyp', gyp info spawn args '-Dnode_lib_file=/home/joel/.node-gyp/7.10.1/<(target_arch)/node.lib', gyp info spawn args '-Dmodule_root_dir=/home/joel/workspace/Tracker3', gyp info spawn args '-Dnode_engine=v8', gyp info spawn args '--depth=.', gyp info spawn args '--no-parallel', gyp info spawn args '--generator-output', gyp info spawn args 'build', gyp info spawn args '-Goutput_dir=.' ] gyp info spawn make gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] make: Entering directory '/home/joel/workspace/Tracker3/build' make: *** No rule to make target 'Release/obj.target/binding/src/binding.o', needed by 'Release/obj.target/binding.node'. Stop. make: Leaving directory '/home/joel/workspace/Tracker3/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/node-gyp/lib/build.js:258:23) gyp ERR! stack at emitTwo (events.js:106:13) gyp ERR! stack at ChildProcess.emit (events.js:194:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12) gyp ERR! System Linux 4.11.3-041103-generic gyp ERR! command "/home/joel/.nvm/versions/node/v7.10.1/bin/node" "/usr/local/bin/node-gyp" "rebuild" gyp ERR! cwd /home/joel/workspace/Tracker3 gyp ERR! node -v v7.10.1 gyp ERR! node-gyp -v v3.6.2 gyp ERR! not ok 

有没有人有任何想法是什么原因造成的? 以及如何debugging和修复?

运行这个命令sudo apt-get install build-essential在ubuntu上再试一次。

也请看这里,因为它在这里推荐。

你可以在这里看到关于如何重新启动的更多信息。

这现在是一个答案! 事实certificate,在项目的根目录中有一个剩余的'binding.gyp',导致所有的问题,因为它不能build立任何东西! 自然我的第一个假设,这是由于包是完全错误的….

简化和删除所有内容到:

 { "name": "Tracker3", "version": "3.1.0", "description": "A todo list and shared tracker", "keywords": [ "angular", "angular4", "webpack", "typescript" ], "author": "Joel Parke <joel@Dynazu.com>", "homepage": "https://github.com/AngularClass/angular-starter", "license": "UNLICENSED", "scripts": { }, "dependencies": { }, "devDependencies": { }, "repository": { "type": "git", "url": "https://github.com/AngularClass/angular-starter.git" }, "bugs": { "url": "https://github.com/AngularClass/angular-starter/issues" }, "engines": { "node": ">= 4.2.1", "npm": ">= 3" } } 

包里根本没有什么东西现在给了:

 yarn yarn install v0.27.5 [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh packages... success Saved lockfile. $ node-gyp rebuild gyp info it worked if it ends with ok gyp info using node-gyp@3.5.0 gyp info using node@7.10.1 | linux | x64 gyp info spawn /usr/bin/python2 gyp info spawn args [ '/home/joel/.nvm/versions/node/v7.10.1/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py', gyp info spawn args 'binding.gyp', gyp info spawn args '-f', gyp info spawn args 'make', gyp info spawn args '-I', gyp info spawn args '/home/joel/workspace/Tracker3/build/config.gypi', gyp info spawn args '-I', gyp info spawn args '/home/joel/.nvm/versions/node/v7.10.1/lib/node_modules/npm/node_modules/node-gyp/addon.gypi', gyp info spawn args '-I', gyp info spawn args '/home/joel/.node-gyp/7.10.1/include/node/common.gypi', gyp info spawn args '-Dlibrary=shared_library', gyp info spawn args '-Dvisibility=default', gyp info spawn args '-Dnode_root_dir=/home/joel/.node-gyp/7.10.1', gyp info spawn args '-Dnode_gyp_dir=/home/joel/.nvm/versions/node/v7.10.1/lib/node_modules/npm/node_modules/node-gyp', gyp info spawn args '-Dnode_lib_file=node.lib', gyp info spawn args '-Dmodule_root_dir=/home/joel/workspace/Tracker3', gyp info spawn args '--depth=.', gyp info spawn args '--no-parallel', gyp info spawn args '--generator-output', gyp info spawn args 'build', gyp info spawn args '-Goutput_dir=.' ] gyp info spawn make gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] make: Entering directory '/home/joel/workspace/Tracker3/build' make: *** No rule to make target 'Release/obj.target/binding/src/binding.o', needed by 'Release/obj.target/binding.node'. Stop. make: Leaving directory '/home/joel/workspace/Tracker3/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/home/joel/.nvm/versions/node/v7.10.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23) gyp ERR! stack at emitTwo (events.js:106:13) gyp ERR! stack at ChildProcess.emit (events.js:194:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12) gyp ERR! System Linux 4.12.0-041200-generic gyp ERR! command "/home/joel/.nvm/versions/node/v7.10.1/bin/node" "/home/joel/.nvm/versions/node/v7.10.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /home/joel/workspace/Tracker3 gyp ERR! node -v v7.10.1 gyp ERR! node-gyp -v v3.5.0 gyp ERR! not ok error Command failed with exit code 1. 

结果certificate这个“binding.gyp”文件在某个时候被遗留下来,导致了所有的问题。 删除这个文件并恢复所有的东西给出:

 yarn: yarn install v0.27.5 [1/4] Resolving packages... success Already up-to-date. Done in 0.12s. joel@parke:~/workspace/Tracker3$ yarn yarn install v0.27.5 [1/4] Resolving packages... [2/4] Fetching packages... warning fsevents@1.1.2: The platform "linux" is incompatible with this module. info "fsevents@1.1.2" is an optional dependency and failed compatibility check. Excluding it from installation. [3/4] Linking dependencies... warning "ngrx-store-freeze@0.1.9" has incorrect peer dependency "@ngrx/store@^2.2.1". [4/4] Building fresh packages... success Saved lockfile. $ npm run webdriver:update > Tracker3@3.1.0 webdriver:update /home/joel/workspace/Tracker3 > webdriver-manager update webdriver-manager: using local installed version 12.0.6 [12:02:08] I/file_manager - creating folder /home/joel/workspace/Tracker3/node_modules/webdriver-manager/selenium [12:02:09] I/update - chromedriver: unzipping chromedriver_2.31.zip [12:02:09] I/update - chromedriver: setting permissions to 0755 for /home/joel/workspace/Tracker3/node_modules/webdriver-manager/selenium/chromedriver_2.31 [12:02:11] I/update - geckodriver: unzipping geckodriver-v0.18.0.tar.gz [12:02:11] I/update - geckodriver: setting permissions to 0755 for /home/joel/workspace/Tracker3/node_modules/webdriver-manager/selenium/geckodriver-v0.18.0 Done in 36.46s. 

这是正确的预期。 HOPEFULLY这将有助于别人在某个时候! 感谢所有看着这个! 特别是, https://stackoverflow.com/users/8377060/jack-delson