如何使create-react-app自动构建?

Sea*_*ean 12 javascript node.js express reactjs create-react-app

我一直在使用create react app.'npm start'或'yarn start'autoreloads本身工作正常,但现在我还有另一个问题.目前我通过build文件夹在快速服务器上运行应用程序,我使用'npm run build',因为express正在为构建的文件提供服务.有很多api调用需要应用程序以这种方式运行.现在每次手动执行'npm run build'变得乏味.是否有一个简单的方法或解决方法自动构建就像'npm start'而不弹出应用程序(我知道可以弹出并配置webpack来做到这一点,但我不想走那条路)?谢谢

Bri*_*ian 18

不幸的是,这是你必须自己做的事情.您可以使用像npm-watch这样的工具来完成您想要的任务:

安装npm-watch

npm i --save-dev npm-watch
Run Code Online (Sandbox Code Playgroud)

的package.json

{
  "name": "react-app",
  "version": "0.1.0",
  "private": false,
  "devDependencies": {
    "npm-watch": "^0.1.8",
    "react-scripts": "0.9.5",
  },
  "dependencies": {
    "react": "^15.4.2",
    "react-dom": "^15.4.2"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject",
    "watch": "npm-watch"
  },
  "watch": {
    "build": "src/"
  }
}
Run Code Online (Sandbox Code Playgroud)

之后,只需使用npm run watch启动npm-watch,以便它可以在更改时重建您的资产.


Dan*_*mov 10

虽然这并没有真正回答你的问题,但你不应该npm run build在开发中使用.不仅重建速度很慢,而且它还会跳过对性能和大小的重要反应警告,因此您最终会更多地抓挠头部并在警告中获得更少的细节.

如果您只需要使用Express执行API请求,请使用该proxy功能,功能允许您将API请求代理npm start到您的服务器.还有一个教程,其中包含一个匹配的存储库,演示如何执行此操作.

当然,在生产中,你应该使用由它生成的构建npm run build.但是你只需要在部署之前运行它.