【发布时间】:2016-04-14 11:29:38
【问题描述】:
我有一个 NodeJS 项目部署到 Azure,其中包含一些项目范围的模块,例如 config。
├── bin
│ └── start
├── config
│ └── index.js
└── web.config
在本地,我使用 npm start 启动我的应用程序,这在 Windows 上运行良好。
"scripts": {
"start": "SET NODE_PATH=.& node bin/start"
}
在 Azure 上,我还没有找到从 package.json 运行脚本的方法,因此我将 web.config 更改为运行 node bin/start。
NODE_PATH 环境变量通过“应用程序设置”->“应用程序设置”设置并正确回显。但是,它没有任何作用。
bin/start 文件输出环境变量和错误消息Start "production" - "." - "Cannot find module 'config'":
var http = require('http');
var util = require('util');
var nconf = require('nconf');
nconf.argv()
.env();
var configMsg = 'default msg';
try {
var config = require('config');
if(config) {
configMsg = 'WOOT!';
}
} catch (e) {
configMsg = e.message;
}
http.createServer(function(req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end(
util.format(
'Start "%s" - "%s" - "%s"',
nconf.get('NODE_ENV'),
nconf.get('NODE_PATH'),
configMsg
)
);
}).listen(process.env.PORT);
如何让 Azure 理解 NODE_PATH?
或者,我如何告诉 Azure 使用像 npm start 这样的 npm 脚本运行我的应用程序?
【问题讨论】:
标签: node.js azure environment-variables