如何在package.json文件的脚本声明字符串中包含process.env.PORT



我正在尝试将我的文件上传到Heroku,需要包含PORT规范。我所有的其他项目都有一个index.js文件,而这只是html、js和css,所以我"m使用";实时服务器";我的脚本看起来像这个

"scripts": {
"devserver": "live-server"

},

但是我想要这个

"scripts": {
"devserver": "live-server --port=process.env.PORT"

},

知道吗?因为我必须将npm运行的devserver放在Procfile中,但我需要确保整个过程考虑并实现Heroku的环境变量。

您不能使package.json中的某些内容动态。但是,您可以在Node中使用exec命令。因此,您最好更改package.json脚本以执行一个特殊文件:

{
"scripts": {
"devserver": "node startserver.js"
}
}

然后exec您的实际功能,如下所示:

const { exec } = require('child_process');
exec('live-server --port=' + process.env.PORT, (error, stdout, stderr) => {
if (error) {
return console.log(`error: ${error.message}`);
}
if (stderr) {
return console.log(`stderr: ${stderr}`);
}
// console.log(`stdout: ${stdout}`);
});

相关内容

最新更新