我试图在Azure Web App中运行AtlasBoard,但无法让它工作。我使用“30秒开始”步骤创建了一个新板,当我在本地启动时,演示板运行正常。它既可以通过atlasboard start 3333
启动,也可以运行node start
。
我已将node_modules目录添加到.gitignore。
我在Azure上使用git部署,这似乎工作正常。部署日志还显示已安装npm模块。
这是部署的最后一次输出:
Using start-up script start.js from package.json.
Generated web.config.
The iisnode.yml file explicitly sets nodeProcessCommandLine. Automatic node.js version selection is turned off.
Selected npm version 3.5.1
npm WARN Invalid name: "HRMTS AtlasBoard"
npm WARN wwwroot No description
npm WARN wwwroot No repository field.
npm WARN wwwroot No README data
npm WARN wwwroot No license field.
Finished successfully.
但是,应用程序似乎无法启动,当我查看Kudu控制台中的日志消息时,我明白了:
Error: error installing D:\home\site\wwwroot\packages\demo
at process.<anonymous> (D:\Program Files (x86)\iisnode\interceptor.js:73:106)
at emitOne (events.js:96:13)
at process.emit (events.js:188:7)
at process._fatalException (node.js:267:26)
有没有人对这里的错误有所了解?
答案 0 :(得分:0)
如果您使用https://bitbucket.org/atlassian/atlasboard/src上的演示应用程序的repo在Azure上进行测试,我们需要进行一些其他修改才能在Azure Web Apps上运行测试。
首先,假设您已成功将应用程序部署到Azure,并且在开始运行应用程序时失败。然后,您可以利用Kudu控制台站点或Visual Studio Online扩展(请参阅How to install composer on app service?的答案,了解如何启用Azure Web Apps扩展)来检查D:\home\site\wwwroot\packages\demo\npm-debug.log
处的错误日志。
有类似的错误:
155错误节点-v v0.6.20
156错误npm -v 1.1.37
157错误消息SSL错误:CERT_UNTRUSTED
似乎atlasboard
运行命令,Azure上的节点版本非常低。我们可以手动修改依赖脚本以绕过错误。
如果在部署期间出现错误,则应在部署前修改package.json
中的npm版本,例如:
"engines": {
"npm": ">2.0.0",
"node": ">=0.10"
},
部署后:
检查并修改根目录中port
中的start.js
:
atlasboard({port: process.env.port||3000 , install: true},
function (err) {
if (err) {
throw err;
}
});
修改install
中的D:\home\site\wwwroot\node_modules\atlasboard\lib\package-dependency-manager.js
函数以使用更高的npm版本并删除--production
参数,例如:
...
var npmCommand = isWindows ? "D:\\Program Files (x86)\\npm\\3.5.1\\npm.cmd" : "npm";
executeCommand(npmCommand, ["install", pathPackageJson], function(err, code){
...
})
然后重新启动您的网站。
如有任何疑问,请随时告诉我。