使用babel-preset-env进行转换,而无需从create-react-app弹出

时间:2019-02-27 09:50:33

标签: node.js reactjs docker babeljs create-react-app

我使用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"
 },
...

1 个答案:

答案 0 :(得分:2)

我认为Node_env不太可能在生产配置文件中找到当前名称。我建议请再次检查所有参数,然后使用SET NODE_ENV = production