【问题标题】:React build with env file from a command line从命令行使用 env 文件反应构建
【发布时间】:2020-10-09 01:23:33
【问题描述】:

有什么方法可以通过类似命令创建 React App 构建?到目前为止,我在 shell 脚本中:

npm install;
npm run-script build:test;

build:test 在哪里

bash -ac '. .env.test; react-scripts build'

但这将引用来自package.jsonbuild:test 脚本,但是当我想在shell 脚本中使用特定的.env 文件时(不编辑或向package.json 添加任何内容)如下

npm run .env.my_box react-scripts build;

不会为.env.my_box 执行构建

我设置错了什么?

【问题讨论】:

  • 我很好奇为什么您将各种 env 配置并排存储而不是在您所处的阶段创建 .env 文件。 IE:在我使用的自动构建器 circle-ci 中,我在每个阶段将 env 变量注入到容器中,而不是检查类似的东西。这对你有用吗?
  • @Petrogad 我们正在为 CD 使用 Ansible

标签: reactjs npm npm-scripts npm-build


【解决方案1】:

你应该试试这个库https://github.com/toddbluhm/env-cmd

更新你的 package.json

   "scripts": {
   "start": "react-scripts start",
   "build": "react-scripts build",
   "test": "react-scripts test",
   "eject": "react-scripts eject",
   "build:stage": "env-cmd -f ./.env.stage npm run-script build" 
}

然后npm run build:stage

【讨论】:

  • 但这和我上面的一样。问题是我是否可以从命令或 shell 脚本中使用env-cmd -f ./.env.stage npm run-script build
  • 显然命令行中的npm run env-cmd -f ./.env.stage npm run-script build 不起作用
【解决方案2】:

你可以这样做:

在 package.json 上

"scripts": {
    "server": "cd server && npm start",
    "client": "cd client && npm start",
    "server-dep": "cd server && npm install",
    "client-dep": "cd client && npm install",
    "install-dep": "npm install && concurrently \"npm run server-dep\" \"npm run client-dep\"",
    "dev": "concurrently \"npm run server\" \"npm run client\"",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

然后 npm run start 例如,这是 monorepo 所以我们用一个命令运行服务器和前端

【讨论】:

  • 我正在尝试自动化构建。当需要将.env 文件传递​​给自动化脚本时,该解决方案将无法从命令行运行
猜你喜欢
  • 1970-01-01
  • 2013-01-30
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
  • 2012-01-21
相关资源
最近更新 更多