嗨,我在本地有一个nodejs和reactjs应用程序,是从一个样板代码开发的,在样板代码package.json中,我有以下这些脚本
"scripts": {
"client-install": "npm install --prefix client",
"start": "node server.js",
"server": "nodemon server.js",
"client": "npm start --prefix client",
"dev": "concurrently \"npm run server\" \"npm run client\"",
"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"
}
截至目前,我知道可以使用这些脚本将其部署在heroku上,我是否可以使用相同的脚本在Azure上部署,我是否需要在此处进行任何更改。
// Serve static assets if in production
if (process.env.NODE_ENV === "production") {
// Set static folder
app.use(express.static("client/build"));
app.get("*", (req, res) => {
res.sendFile(path.resolve(__dirname, "client", "build", "index.html"));
});
}
const port = process.env.PORT || 5000;
app.listen(port, () => console.log(`Server started on port ${port}`));
这就是我在server.js
中所拥有的起点。我没有用于比较环境的任何配置文件夹。例如
// i don't have this folder structure and am not using webpack
-- config
|-- dev.json
|-- prod.json
有人建议,最好的部署方法是什么,或者我可以通过更改其密钥(例如azure-postbuild
编辑:我认为我应该使用postinstall
而不是heroku-postbuild