当前位置: 首页 > 知识库问答 >
问题:

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

轩辕成天
2023-03-14

我使用create react应用程序已经有一段时间了。“npm start”或“yarn start”自动重装本身工作正常,但现在我有了另一个问题。目前,我在express server上通过build文件夹运行应用程序,我使用“npm run build ”,因为express正在提供构建文件。有许多api调用要求应用程序以这种方式运行。现在,每次手动执行“npm运行构建”变得很乏味。有没有一个简单的方法或解决办法来自动构建,就像“npm start”一样,而不弹出应用程序(我知道可以弹出并配置webpack来做到这一点,但我不想走这条路)?谢谢

共有3个答案

丌官和泰
2023-03-14

在其他端口上运行后端。如果在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}`)
邹铭
2023-03-14

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

如果您只需要使用Express执行API请求,请使用< code >代理功能,该功能允许您将API请求从< code>npm start代理到您的服务器。还有一个带有匹配存储库的教程演示了如何做到这一点。

当然,在生产中,您应该使用< code>npm run build生成的版本。但是您只需要在部署之前运行它。

皇甫飞宇
2023-03-14

不幸的是,这是你必须自己做的事情。您可以使用类似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 运行监视来启动 npm-watch,这样它就可以在更改时重新构建您的资产。

更新:

React-scripts现在包括一个< code>proxy选项,该选项将请求代理到不同的主机/端口。例如,如果您的后端运行在< code>/api路径下的< code>localhost端口< code>9000上,那么您应该将这一行添加到您的package . JSON:< code > " proxy ":" localhost:9000/API " 。然后,您可以像在生产中一样发出请求。(来源:https://create-react-app . dev/docs/proxy ing-API-requests-in-development)

 类似资料:
  • 问题如下: 想要在React 项目执行yarn build 时, 给index.html 增加后缀 没有使用react-eject, 使用的是crao 替代, 但是craco.config.js 配置 HtmlWebpackPlugin不生效。 craco.config.js 配置如下: package.json 部分组件版本如下: 执行yarn build 打包后,配置无效, 请教各位大佬们了

  • Create React App 不用配置就可以创建 React App。 全局安装: npm install -g create-react-app 创建 App: create-react-app my-appcd my-app/ 启动 npm: npm start 打开 http://localhost:3000/  查看你的 App。 如果你准备将其部署到生产环境,只需创建一个压缩包,并且运行 npm run build。

  • 创建响应应用时,图像中出现错误。它一直在正常工作,我所做的就是mkdir和cd到那个dir。 这就是错误的样子... NPX:在36.634s中安装了99必须使用导入来加载ES模块: C:\用户\Neeraj\AppData\漫游\npm-cache_npx\5172\node_modules\create-react-app\node_modules\is-promise\index.js不支持

  • Create React Native App The fastest way to create universal React Native apps npx create-react-native-app Once you're up and running with Create React Native App, visit this tutorial for more informat

  • npm启动 在默认浏览器上启动反应服务器,对我来说是Firefox。我喜欢Firefox用于浏览,但更喜欢其开发人员工具的Web开发Chrome。有没有办法强制"npm start"使用Chrome启动服务器,而不将我的默认浏览器更改为chrome?我在Windows上使用Bash。 编辑:我使用"create-react-app"来创建我的服务器,这为"npm start"添加了一个脚本到"pa

  • 问题内容: 我有一个项目,我两个星期都没碰过。我将其取回,现在尝试运行时出现此错误。 节点6.7.0 npm 3.10.3 mac sierra 10.12 package.json 我也尝试克隆我的存储库,并得到相同的错误。如果有人可以给我一些方法来查找发生了什么。谢谢 问题答案: 签入Create React App的作者。 您绝对不应该在全球范围内安装。 您还 没有 需要的是这个答案暗示。