cco*_*der 5 docker reactjs create-react-app
我正在尝试使用 docker 创建一个生产版本,用于在线部署 create-react-app 和 Express js 后端。
这是我的泊坞窗文件:
FROM node:12.18.3
WORKDIR /app
COPY ["package.json", "package-lock.json", "./"]
RUN npm install --production
COPY . .
RUN npm run build
EXPOSE 80
CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)
我正在使用 npm run build 但反应开发人员工具仍然告诉它是开发构建而不是生产构建。
此外,在源中,所有不应可见的项目文件都是可见的:
我尝试在 create-react-app 根目录的 .env 文件中添加以下语句,但项目文件仍然可见:
GENERATE_SOURCEMAP=false
Run Code Online (Sandbox Code Playgroud)
如果有人可以指导我如何解决此问题并创建生产版本,那将会很有帮助。
谢谢
对于那些寻求解决方案的人来说,可以通过在项目目录中创建包含以下内容的 server.js 文件来解决该问题:
const express = require('express');
const serveStatic = require('serve-static');
const path = require('path');
const app = express();
// create middleware to handle the serving the app
app.use("/", serveStatic ( path.join (__dirname, '/build') ) );
// Catch all routes and redirect to the index file
app.get('*', function (req, res) {
res.sendFile(__dirname + '/build/index.html')
});
// Create default port to serve the app on
const port = process.env.PORT || 3000
app.listen(port);
Run Code Online (Sandbox Code Playgroud)
另外在 docker 文件中添加:
CMD ["node", "server.js"]
Run Code Online (Sandbox Code Playgroud)
代替
CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11367 次 |
| 最近记录: |