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

时间:2017-03-13 20:29:35

标签: javascript node.js reactjs express create-react-app

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

5 个答案:

答案 0 :(得分:13)

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

安装npm-watch

npm i --save-dev npm-watch

的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/"
  }
}

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

答案 1 :(得分:10)

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

如果您只需要使用Express use the proxy feature执行API请求,则可以将npm start的API请求代理到您的服务器。还有一个tutorialrepository匹配,证明了如何做到这一点。

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

答案 2 :(得分:0)

在另一个端口上运行后端。如果你在express上运行修改文件bin / www

var port = process.env.PORT || 9000

并在/ src文件夹中创建一个配置文件,您可以在其中配置api主机,路由,参数等

//config/index.js
export const Config = {
   protocol: 'http',
   host: window.location.hostname, //or the environment variable
   params: '/api/',
   api: {post:'/posts/'}
}

并在您的通话组件或您调用api的地方

import {Config} from '../config'

axios.get(`${Config.protocol}${Config.host}${Config.params}${Config.api.posts}${some id i guess}`)

答案 3 :(得分:0)

我也在使用create react app,这就是我修改脚本以运行项目进行开发(windows),构建生产版本并运行生产版本的方式。

"scripts": {
    "start": "set PORT=8080 && react-scripts start",
    "build": "react-scripts build",
    "deploy": "set PORT=8008 && serve -s build"
  }

npm start:运行用于开发的项目(Windows) npm run-script build:构建生产版本 npm run-script deploy:运行生产版本

  • npm install -g在运行npm run-script部署之前提供。

答案 4 :(得分:-4)

1> npm install create-react-app -g

2> create-react-app Your_Apps_Name