【问题标题】:npm install failing using babel-presets / chai / mochanpm install 使用 babel-presets / chai / mocha 失败
【发布时间】:2015-11-05 05:12:21
【问题描述】:

在带有节点 v0.10.40 和 NPM 1.4.28 的 Ubuntu 14.04.3 LTS 上

npm install 失败了,我什至没有在我期望的node_modules/.bin 中获得所有软链接。

这似乎与chaiwebpackwebpack-dev-serverbabel-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


    【解决方案1】:

    第一个问题确实是在旧版本的节点上编译时出现utf-8-validate 问题。为此,我跟随 digitalocean guide 使用 v5.0.0 版本。请注意,我必须获取 setup_5.x 文件,而不是指南中描述的 setup 文件。

    下一个问题是我在执行npm install 时收到了Killed 消息,中途。这是因为我运行的机器只有不到 512mb 的内存和 256mb 的交换空间。这听起来非常小,但却是一个简单的 ubuntu 服务器,完全符合最低规格,并且在数据中心中作为 VM 运行。我可以一次安装每个单独的包,但一次安装会耗尽内存,并产生Killed 消息。唯一的解决方案是增加我的内存和交换,或者在不同的机器上运行它并上传文件。不理想,但它们是休息时间。

    我现在可以正常工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-02
      • 1970-01-01
      • 2016-04-16
      • 2016-01-22
      • 2016-04-01
      • 1970-01-01
      • 2019-02-23
      • 2017-06-17
      相关资源
      最近更新 更多