我正在使用esausilva/example-create-react-app-express为我的MERN项目创建一个基础
它是在文件中编写的
if (process.env.NODE_ENV === 'production') {
// Serve any static files
app.use(express.static(path.join(__dirname, 'client/build')));
// Handle React routing, return all requests to React app
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname, 'client/build', 'index.html'));
});
}
根据我的理解,这意味着如果express服务器在生产模式下运行,那么它将查看
在
"scripts": {
"client": "cd client && yarn start",
"server": "nodemon server.js",
"dev": "concurrently --kill-others-on-fail \"yarn server\" \"yarn client\"",
"dev:server": "cd client && yarn build && cd .. && yarn start",
"start": "node server.js",
"heroku-postbuild": "cd client && npm install && npm install --only=dev --no-shrinkwrap && npm run build"
},
我的困惑是,当我运行
您需要一个构建脚本,以便它能够生成构建文件夹,命令yarn dev所做的就是它运行开发服务器。您可以在react文档中看到更多信息。