我使用create-react-app创建一个react项目。为了将其打包以在其他地方运行,我将Docker与以下配置文件一起使用:
我的Dockerfile
FROM node
COPY package.json .
RUN npm install
COPY . .
RUN npm run build
RUN npm run transpile
CMD PORT=$PORT npm run start:prod
当我使用docker build . -t name_repo
在docker中运行我的应用程序时,构建会在步骤7/8(npm run transpile)停止,在此我需要使用babel(babel-preset-env和babel-preset- react-app),并出现此错误:
this SO answer it is caused by different storage types
package.json:
...
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"transpile": "NODE_ENV=production babel src --out-dir transpiled --presets env,react-app",
"start:prod": "NODE_ENV=production node server.js"
},
...
答案 0 :(得分:2)
我认为Node_env不太可能在生产配置文件中找到当前名称。我建议请再次检查所有参数,然后使用SET NODE_ENV = production