Azure网站实例未在Package.json中运行已定义的节点版本

时间:2015-01-31 23:45:00

标签: json node.js azure docpad

目前在Azure中,我正在使用一个“Azure网站”#39;实例尝试运行Docpad(NodeJS App)。在我的package.json文件中,我有以下定义..

"engines": {
  "node": "0.10.21",
  "npm": "1.x"
},

我尝试了很多不同的条目,从这里列出的0.10.x到0.8.x => http://azure.microsoft.com/en-us/documentation/articles/nodejs-specify-node-version-azure-apps/

问题是Docpad正在使用Dependencies和Semver Entries,而Azure似乎完全忽略了我定义的Node版本,因为存在诸如......之类的错误。

npm WARN engine docpad@6.69.2: wanted: {"node":">=0.8","npm":">=1.2"} (current: {"node":"0.6.20","npm":"1.1.37"})

因此,当NPM由于依赖性而安装Docpad时,我遇到了严重/失败错误......

npm ERR! Error: No compatible version found: rimraf@'^2.2.8'
npm ERR! Valid install targets:
npm ERR! ["1.0.0","1.0.1","1.0.2","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","2.0.0","2.0.1","2.0.2","2.0.3","2.1.0","2.1.1","2.1.2","2.1.3","2.1.4","2.2.0","2.2.1","2.2.2","2.2.3","2.2.4","2.2.5","2.2.6","2.2.8"]

我甚至试图在我的部署脚本中尝试打印Node Version,只是让它返回环境变量Azure所谓的荣誉,但它显然是无效的。

我想要做的就是在Azure上部署一个Docpad网站,我很惊讶于如何在Azure中使用半新版本的节点是如此困难。任何帮助都将非常感谢!

1 个答案:

答案 0 :(得分:0)

nodenpm现在是npm包,可以作为项目的依赖项安装,因此一旦安装了依赖项,它就会运行正确的版本。

但是,要安装这些软件包,您需要使用比引擎部分中的版本更新的版本:

  • 没有npm> = 3安装节点包将通过过早删除现有版本的节点来破坏您的系统
  • 没有节点> = 4,npm包不起作用(对于出了什么问题并不具体)