【发布时间】:2015-11-05 05:12:21
【问题描述】:
在带有节点 v0.10.40 和 NPM 1.4.28 的 Ubuntu 14.04.3 LTS 上
npm install 失败了,我什至没有在我期望的node_modules/.bin 中获得所有软链接。
这似乎与chai、webpack、webpack-dev-server 和babel-preset-es2015 / babel-preset-react 有关。例如,如果我取出 Chai,它就可以工作。如果我取出 babel-preset 包,它就可以工作。如果他们都在那里,那就没有了。
最少损坏的packages.json
这是一个小的 packages.json 配置,它会中断:
{
"name": "voting-client",
"version": "1.0.0",
"description": "",
"main": "index.jsx",
"scripts": {
"webpack": "webpack",
"webpack-dev-server": "webpack-dev-server --host 0.0.0.0",
"test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js 'test/**/*.@(js|jsx)'",
"test:watch": "npm run test --watch"
},
"author": "",
"license": "ISC",
"devDependencies": {
"babel-core": "^6.0.20",
"babel-loader": "^6.0.1",
"babel-preset-es2015": "^6.0.15",
"babel-preset-react": "^6.0.15",
"chai": "^3.4.0",
"mocha": "^2.3.3",
"webpack": "^1.12.2",
"webpack-dev-server": "^1.12.1"
},
"dependencies": {
}
}
实际的packages.json
这是我的实际 packages.json 配置,它也中断了:
{
"name": "voting-client",
"version": "1.0.0",
"description": "",
"main": "index.jsx",
"scripts": {
"webpack": "webpack",
"webpack-dev-server": "webpack-dev-server --host 0.0.0.0",
"test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js 'test/**/*.@(js|jsx)'",
"test:watch": "npm run test --watch"
},
"author": "",
"license": "ISC",
"devDependencies": {
"babel-core": "^6.0.20",
"babel-loader": "^6.0.1",
"babel-preset-es2015": "^6.0.15",
"babel-preset-react": "^6.0.15",
"chai": "^3.4.0",
"chai-immutable": "^1.5.1",
"jsdom": "^7.0.2",
"mocha": "^2.3.3",
"react-hot-loader": "^1.3.0",
"webpack": "^1.12.2",
"webpack-dev-server": "^1.12.1"
},
"dependencies": {
"immutable": "^3.7.5",
"react": "^0.14.2",
"react-dom": "^0.14.2"
}
}
npm 安装出错
更仔细地查看npm install,我发现它在子包utf-8-validate 上失败了。我知道我的 gypsy 安装有效,因为它编译 socket.io 在另一个项目中没有问题。
web23@wendy:/var/www/io.ofbeaton.com/web/dev/voting-client$ npm install
npm WARN package.json voting-client@1.0.0 No description
npm WARN package.json voting-client@1.0.0 No repository field.
npm WARN package.json voting-client@1.0.0 No README data
npm WARN optional dep failed, continuing fsevents@1.0.5
npm WARN optional dep failed, continuing fsevents@1.0.5
\
> utf-8-validate@1.2.1 install /var/www/clients/client1/web23/web/dev/voting-client/node_modules/webpack-dev-server/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild
make: Entering directory `/var/www/clients/client1/web23/web/dev/voting-client/node_modules/webpack-dev-server/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate/build'
CXX(target) Release/obj.target/validation/src/validation.o
Killed
web23@wendy:/var/www/io.ofbeaton.com/web/dev/voting-client$ SOLINK_MODULE(target) Release/obj.target/validation.node
SOLINK_MODULE(target) Release/obj.target/validation.node: Finished
COPY Release/validation.node
make: Leaving directory `/var/www/clients/client1/web23/web/dev/voting-client/node_modules/webpack-dev-server/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate/build'
请特别查看Killed 行。这就是我在安装损坏时得到的所有输出。这是怎么回事?我该如何解决?
没有预设的工作示例:
这是一个没有 babel-presets 的工作 package.json。
{
"name": "voting-client",
"version": "1.0.0",
"description": "",
"main": "index.jsx",
"scripts": {
"webpack": "webpack",
"webpack-dev-server": "webpack-dev-server --host 0.0.0.0",
"test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js 'test/**/*.@(js|jsx)'",
"test:watch": "npm run test --watch"
},
"author": "",
"license": "ISC",
"devDependencies": {
"babel-core": "^6.0.20",
"babel-loader": "^6.0.1",
"chai": "^3.4.0",
"mocha": "^2.3.3",
"webpack": "^1.12.2",
"webpack-dev-server": "^1.12.1"
},
"dependencies": {
}
}
编辑:问题是旧节点版本吗?
https://github.com/websockets/utf-8-validate/issues/18 似乎表明旧节点版本会导致此问题。
所以我将 node 升级到 v5.0.0 和 npm 到 3.3.6。
这是“npm install”输出:
web23@wendy:/var/www/io.ofbeaton.com/web/dev/voting-client$ npm install
npm WARN install Couldn't install optional dependency: Unsupported
extract → gunzTarPerm ▐ ╢█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
Killed
没有骰子。
【问题讨论】:
标签: node.js npm mocha.js babeljs chai