npm ERR! 无法读取未定义的属性'暂停'

我试图将Sails.js应用程序部署到Bluemix,并且在Bluemix上的工具链的部署阶段(当调用CF PUSH命令时)出现以下错误:

npm ERR! 无法读取未定义的属性'暂停'

我知道跟踪到npm-error.log文件,但是,我一直无法得到它,因为我们不能ssh看到文件中有什么,因为应用程序处于“关闭”状态后,部署。

这个相同的代码已经在8天前用Bluemix中的Cf push {app name}}和一个简单的构建和部署工具链成功部署了。

在构建阶段,我可以运行Npm install和npm update就好了。 然而,似乎在部署阶段再次这样做,无论它失败了。 这里是关于这个失败的一些细节

NODE_ENV=production
   NPM_CONFIG_LOGLEVEL=error
   NPM_CONFIG_PRODUCTION=true
   Visit http://docs.cloudfoundry.org/buildpacks/node/index.html#vendoring
   NODE_HOME=/tmp/app/.cloudfoundry/0/node
   NODE_MODULES_CACHE=true
   NODE_VERBOSE=false
Restoring cache
       Loading 3 from cacheDirectories (default):
       - .npm
       - .cache/yarn (not cached - skipping)
       - bower_components (not cached - skipping)
       Installing node modules (package.json) Building dependencies
 sails@0.12.13 preinstall /tmp/app/node_modules/sails
 node ./lib/preinstall_npmcheck.js
Sails.js Installation: Checking npm-version successful
npm ERR! Cannot read property 'pause' of undefined
npm ERR!     /tmp/app/.npm/_logs/2017-09-09T17_02_48_660Z-debug.log
       **ERROR** Unable to build dependencies: exit status 1
Failed to compile droplet
Exit status 223
Staging failed: Exited with status 223
Destroying container
npm ERR! A complete log of this run can be found in:
Successfully destroyed container

Package.json文件

{
  "name": "myApp",
  "private": true,
  "version": "0.0.1",
  "description": "Stuff my app does",
  "keywords": [
    "Cool Apps"
  ],
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "cacheman": "^2.2.1",
    "ejs": "2.3.4",
    "elasticsearch": "^13.0.0-rc2",
    "find-remove": "^1.0.1",
    "fs": "0.0.1-security",
    "grunt": "1.0.1",
    "grunt-contrib-clean": "1.0.0",
    "grunt-contrib-coffee": "1.0.0",
    "grunt-contrib-concat": "1.0.1",
    "grunt-contrib-copy": "1.0.0",
    "grunt-contrib-cssmin": "1.0.1",
    "grunt-contrib-jst": "1.0.0",
    "grunt-contrib-less": "1.3.0",
    "grunt-contrib-uglify": "1.0.1",
    "grunt-contrib-watch": "1.0.0",
    "grunt-sails-linker": "~0.10.1",
    "grunt-sync": "0.5.2",
    "include-all": "^1.0.0",
    "jsonwebtoken": "^7.3.0",
    "moment": "^2.18.1",
    "moment-timezone": "^0.5.13",
    "passport": "^0.2.x",
    "passport-http-bearer": "^1.0.1",
    "passport-idaas-openidconnect": "^1.1.0",
    "passport-local": "^1.0.0",
    "rc": "1.0.1",
    "request": "^2.81.0",
    "request-promise": "^4.2.0",
    "sails": "~0.12.13",
    "sails-disk": "~0.10.9",
    "sails-mongo": "^0.12.2",
    "stream": "0.0.2",
    "uuid-1345": "^0.99.6",
    "validator": "^7.0.0",
    "natural-sort": "^1.0.0"
  },
  "scripts": {
    "start": "node app.js"
  },
  "engines": {
    "node": "^8.0.x",
    "npm": "^5.0.x"
  },
  "main": "app.js",
  "author": "Scott N",
  "license": ""
}

迄今为止我尝试过的东西。 - 更改节点版本 - 更改npm版本 - 更改依赖关系版本以包含^前缀-removed所有依赖关系,但在package.json文件中包含Sails

所以Sails.js和Nodebuildpack / Bluemix并不能很好地兼容。

任何帮助,将不胜感激。 谢谢


它发生在我身上一样。 我必须回滚npm:5.3.0的prev版本,现在它正在工作。 (顺便说一句:macOS)

只有当我更新我的npm版本时,错误才会发生:

  Update available 5.3.0 → 5.4.1    
   Run npm i -g npm to update      

处理它的最好方法是更新你的package.json来使用像这样的engines

"description": "a Sails application",
  "keywords": [],
  "engines": {
    "node": "6.10.1",
    "npm": "5.3.0"
  },

得到了这个问题,而试图推到heroku ,这似乎是由@mt指定的NPM版本,并同时指定版本,像上面让IBM bluemix把它捡起来作为默认节点引擎而是采用了最新的稳定版本的。

并且不要忘记始终直接指定节点和npm版本,而不是添加tildecaret ,这只是为了安全起见。 查看https://stackoverflow.com/a/22345808/5836034了解更多关于tilde and caret

你仍然可以在这里查看@ sai-vennam的答案以获取更多信息


所以我将package.json文件中的sails版本从0.12回滚到了0.11,并且它部署得很好。 所以CF PUSH和最新的风帆版本在Bluemix上不会相处。 这是使用节点8.0和NPM版本^ 5.0.x

链接地址: http://www.djcxy.com/p/27661.html

上一篇: npm ERR! Cannot read property 'pause' of undefined

下一篇: What does "^" mean in node.js dependency list?