如何在不缩小的情况下构建 React 的生产版本?

2024-04-23

背景

我或多或少都在关注使用 React 设置本地开发环境的官方指南 https://reactjs.org/tutorial/tutorial.html#setup-option-2-local-development-environment它似乎使用create-react-app,这确实设置了很多。

现在,如果我跑npm run build我得到了所有内容的缩小版本build文件夹。 然而,如果我跑npm startNodeJS 提供的版本似乎没有任何修改。但我看不到这些文件。

Question

所以要么:

  • 我可以访问由npm start某处?因为这些似乎没有经过修改。 (build那里从未被修改过)
  • 或者我可以以某种方式运行npm run build,那么它会使用未最小化的文件进行“开发”构建吗?

Tries

我的目标只是访问未最小化版本的反应脚本.

至于我尝试过的最后一个问题这个问题中建议的一些参数和环境变量 https://stackoverflow.com/questions/55092940/npm-run-build-always-builds-production-and-never-development,但正如你所看到的,它失败了:

$ NODE_ENV=dev npm run build --dev --configuration=dev

> [email protected] /cdn-cgi/l/email-protection build [...]
> react-scripts build

Creating an optimized production build...
[...]

System

My package.json有默认脚本:

  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

Note:请不要问我为什么这样做或试图说服我这样做是不好的。我想要这个的原因有很多,例如调试或这个特定的用例 https://stackoverflow.com/questions/55160698/how-to-use-react-without-unsafe-inline-javascript-css-code.


要更改 webpack 配置和构建脚本,您必须从 create-react-app 中弹出(我不推荐此步骤,因为它会破坏未来的兼容性)或使用 rewire 等工具来覆盖某些设置

看看这个。
https://github.com/timarney/react-app-rewired https://github.com/timarney/react-app-rewired

我个人使用的是重新布线

npm i rewire --save-dev

这是我过去为我的一个项目创建的示例配置,它运行得非常好!

  1. Create build.js
  2. 更改你的 package.json 以便它运行 build.js

build.js

const rewire = require('rewire');
const defaults = rewire('react-scripts/scripts/build.js');
const config = defaults.__get__('config');

// Consolidate chunk files instead
config.optimization.splitChunks = {
  cacheGroups: {
    default: false,
  },
};
// Move runtime into bundle instead of separate file
config.optimization.runtimeChunk = false;

// JS
config.output.filename = '[name].js';
// CSS. "5" is MiniCssPlugin
config.plugins[5].options.filename = '[name].css';
config.plugins[5].options.publicPath = '../';

然后在我的 package.json 中我像这样更改了 npm 脚本链接 (将运行 build.js 脚本的节点构建)

包.json

"scripts": {
    "start": "react-scripts start",
    "build": "node build && gulp",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

所以如果你真的想从 create-react-app 中弹出,你所要做的就是运行

npm run-script eject

然后你将得到一个新文件夹,其中包含 create-react-app 使用的所有配置

但正如我之前所说,没有理由不使用重新接线并覆盖配置而不是弹出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不缩小的情况下构建 React 的生产版本? 的相关文章

  • 我如何解决 React+Material UI 中的此错误

    当我尝试在 Mac 和 Ubuntu 中运行该应用程序时 出现以下错误 但在Windows平台下运行没有任何错误 我该如何解决这个问题 Material UI beta 版本 v1 0 0 beta 46 中是否有任何平台特定的代码 我使用
  • 在 Dockerfile 中安装节点?

    我是AWS elastic beanstalk的用户 我遇到了一些问题 我想用 less node 构建我的 CSS 文件 但我不知道在使用 jenkins 构建时如何在 dockerfile 中安装节点 这是我在 docker 中使用的安
  • 节点 --experimental-modules,请求的模块不提供名为的导出

    我已经安装了 Node 8 9 1 v10 5 0 中也出现同样的问题 我正在尝试在文件中使用来自 npm 包的命名导入 mjs import throttle from lodash I run node experimental mod
  • 在打字稿中读取和写入文本文件

    我应该如何从 Node js 中的 TypeScript 读取和写入文本文件 我不确定是否会在 node js 中读 写沙箱文件 如果没有 我相信应该有一种访问文件系统的方法 相信应该有一种访问文件系统的方法 Include node d
  • 如何使用 JS 和 Chrome 控制台向频道发送 Discord 消息?

    如何使用 JS 和 Chrome 控制台在不使用 Discord API 的情况下将 Discord 消息发送到 Discord 频道 看来这是不可能的事了 打开不和谐控制台 ctrl shift i 不起作用 请参阅下面的编辑 然后进入网
  • fetch 被告知调用 http 资源,但它改为调用 https 资源

    这是我在 React 应用程序中的代码 我正在使用 JS 原生 fetch fetch http signup momeas com index php user email timezone tz mode no cors method
  • React-Router v4 渲染错误的组件但匹配正确

    我有一个带有两个按钮的侧边栏 测试 和 关于 Test 火箭图标 呈现在 test 处 About 主页图标 呈现在 处 它们都位于应用程序的根目录并嵌套在组件内 当我从 开始并单击 链接到 test 时 它总是加载 关于 组件 当我检查
  • 提交后清除 React 中的表单

    我试图在使用 Axios 创建表单提交后清除表单数据 消息处理良好 响应记录到页面 但每个文本字段中的数据在提交后仍保留在页面上 我尝试添加一个resetForm函数 我将表单设置回原来的空白状态 但这不起作用 import React C
  • 将数据传递给视图时,node ejs 引用错误数据未在 eval 处定义

    我已经接近使用express和ejs的节点应用程序 但是当我尝试将数据从控制器传递到我的视图时 如下所示 var myData theData data res render path join dirname views index my
  • React/Typescript ForwardRef 类型用于返回输入或文本区域的元素

    我正在尝试使用 React 和 TypeScript 为我们的应用程序创建一个通用文本输入组件 我希望它能够成为基于给定 prop 的输入元素或文本区域元素 所以它看起来有点像这样 import TextArea Input from ou
  • Mocha 测试无法在 Nodejs 服务器上运行 [重复]

    这个问题在这里已经有答案了 客观的 找出当断言失败时我的测试崩溃的原因 背景 我有一个非常简单的 NodeJs 应用程序 我正在使用Mocha https www npmjs com package mocha for BDD https
  • res.redirect 不会重定向 Node/Express.js

    我正在为我的 web 应用程序使用 Express 并检查会话中是否存在某些值 将用户重定向到 Instagram 登录页面 但在控制台中我不断收到 302 代码 并且浏览器不会重定向用户 这是我的代码 我正在使用 Ajax 发送我的请求
  • userRef 或 createRef 在功能组件中返回未定义

    我在这里阅读了很多答案 但它们都是类组件的潮流 如果我有使用 useRef 或 createRef 的简单功能组件 则 ref current 未定义 我将它分配在 div 或 input 之上 但我无法获取它们的任何属性 Console
  • Android 在连接 Socket 时出现错误

    在阅读了一些express io文档并成功连接到之后 我尝试使用nodejs和express io编写简单的应用程序http chat socket io在命令行中运行下面的代码并打开后 我找到了使用 nodejs 和express io
  • 通过键盘快捷键电子应用程序禁用重新加载

    我想实现一个绑定到的自定义操作Command R电子应用程序中的键盘快捷键 我克隆了electron quick start回购 并改变了main js文件到此 const app Menu MenuItem BrowserWindow r
  • 在 Heroku 应用程序中同时运行 Django 和 Node

    我想在我的 heroku 实例上同时运行 django 应用程序和节点应用程序 这是我的进程文件 web python manage py runserver 0 0 0 0 PORT web node bin node modules a
  • 如何在没有 Express 的情况下通过 Mongoose 与 MongoDB 交互?

    我想要一个可以牢固掌握 CRUD 操作如何工作的环境 到目前为止 我一直在使用views看看数据是什么样子 但由于明显缺乏灵活性 这种方法并不是那么有洞察力 这就像在黑暗中开车一样 现在我希望能够通过 Mongoose 提供的功能来处理 M
  • 如何使用 Material UI 制作一个圆形复选框?

    我尝试匹配的设计要求复选框为圆形 我正在使用 Material UI 和 React 边框半径不起作用 因为实际图标的边框不是可见复选框的边框 我不能只使用像 Font Awesome 这样的东西 因为它需要实际检查和取消检查 Curren
  • 如何在node-mysql查询后获取警告

    如何获取查询执行后识别的相应警告 如下所示 connection query squery function err rows search for OkPacket in 2 dimension array var warningCoun
  • Socket.io 不断重复连接并忽略其他事件

    我正在尝试制作一个网络应用程序 用户可以在其中互相玩环形国际象棋 这是我的 app js 在服务器上 var express require express var app express var http require http Ser

随机推荐

  • 包使用冲突:捆绑包启动时的导入包

    尝试安装 htmlunit 捆绑包时出现以下错误 com springsource com gargoylesoftware htmlunit 2 6 0 370 could not be resolved Reason Package u
  • 如何将本地不同的 Git 分支推送到 Heroku/master

    Heroku 的政策是忽略除 master 之外的所有分支 虽然我确信 Heroku 的设计者对这个政策有很好的理由 我猜测是为了存储和性能优化 但对我作为开发人员来说 结果是无论我正在研究什么本地主题分支 我都想要一种简单的方法将 Her
  • CakePHP 无法写入某些文件

    我开始使用 CakePHP 为我的框架开发一个网站 我实际上刚刚开始并且已经遇到了错误 我无法理解它们的含义 Warning cake core cache was unable to write cake dev en us to Fil
  • CSS加载后触发的jQuery事件?

    我的页面上有几个链接 在 div 允许您更改 CSS 样式表 theme selector a click function var path this attr href head link remove head append retu
  • 我可以使用 CALayer 来加速视图渲染吗?

    我正在制作一个自定义 NSView 对象 其中一些内容经常更改 而另一些内容则很少更改 事实证明 变化较少的部分需要花费最多的时间来绘制 我想做的是将这两个部分渲染在不同的层中 以便我可以分别更新其中一个或另一个 从而使我的用户免受缓慢的用
  • 未确定的泛型类型在 ghci 的运行时中如何表示

    我很清楚通用函数和通用数据类型 在泛型类型中 data SB forall x show x gt SB x instance Show SB where show SB x show x 所以对于任何给定类型x 如果它有一个签名Show
  • charindex() 最后计算白色字符,len() 在 T-SQL 中不计算

    我想找到最后一个的索引 性格 但问题是 LEFT target LEN target CHARINDEX REVERSE target 不起作用 因为目标列中的字符串末尾有很多空格字符 并且charindex函数包含空格 但是len没有 有
  • 如何对异步 API 进行单元测试?

    我已经安装了适用于 Mac 的 Google 工具箱 http code google com p google toolbox for mac 进入 Xcode 并按照说明设置单元测试发现here http code google com
  • Android NDK 链接问题

    我用 NDK 编译了 Sox 等 所以 我拥有所有 Android 友好的共享库 我制造了一个简单的测试文件 http pastebin com rniwQ7Gz它调用 sox 函数 NDK 构建告诉我 undefined referenc
  • 尝试以紧凑模式访问 UITextView 时 iMessage 扩展程序崩溃

    下面是我在 iMessage 应用程序中的完整代码 class MessagesViewController MSMessagesAppViewController IBOutlet weak var messageView UITextV
  • .net Web 应用程序中的异常处理

    我承认 我不关心太多的异常处理 我知道我应该做得更多 但我永远不知道从哪里开始和从哪里停止 我并不懒惰 离得很远 这是因为我对异常处理的矛盾心理感到过度紧张 即使是最小的应用程序中 似乎也有无数个地方可以应用异常处理 但它可能会让人感觉有点
  • Java 中对象序列化和压缩的性能成本

    应用程序不断接收名为Report并将对象放入Disruptor对于三个不同的消费者 在 Eclipse Memory Analysis 的帮助下 每个进程的 Retained Heap SizeReport对象平均为 20KB 该应用程序开
  • 使用 xslt 比较两个 xml 文件?

    我有 2 个 xml 文件 如何使用 xslt 比较两个文件是否相等 如果不等于意味着第二个 xml 中发生了更改 在 XPath 2 0 中你可以简单地使用fn deep equal http www w3 org TR 2005 CR
  • 检测用户何时点击 div 外部

    我正在向用户展示一个模式 灯箱 当用户单击按钮时 模式会显示 页面的其余部分会变暗 平常的东西 不过我想这样做 如果用户单击模式之外的任何元素 我希望模式消失并且页面恢复正常 如何才能做到这一点 我知道我可以为 body 设置一个 oncl
  • 分配不同价值对象的算法建议

    我有以下问题 给定 N 个对象 N 编辑 通过最公平的分配 我的意思是任何两个玩家获得的物体的价值之间的差异是最小的 另一个类似的情况是 我有N个不同价值的硬币 我需要将它们平均分配给M个玩家 有时他们并没有完全分开 我需要找到下一个最佳的
  • 为什么在 Chrome 中定位:粘性不起作用?

    你怎么获得position sticky在职的 我在 Chrome 26 0 1410 43 m 中尝试了以下操作 但它不起作用 thead position webkit sticky position moz sticky positi
  • $routeProvider 不适用于 html5Mode

    我刚刚开始学习 AngularJs 并尝试使用 Angular 路由服务配置部分页面 它适用于哈希格式 但是 当我试图摆脱哈希时 routeProvider 停止工作 JS app config function routeProvider
  • 使用 JavaScript 创建 csv 文件

    有人可以解释一下是否有一种方法可以将 html5 本地存储数据转换为 csv 文件并将其存储在 ipad 中 我有一个带有一些文本字段的 html 页面 当用户单击提交按钮时 它会存储在 html5 本地存储中 然后我需要使用该数据创建一个
  • 了解 3NF:请用简单的英语

    我正在解决一个示例问题 其中我们试图确定以下哪些关系属于第三范式 3NF 以下是我们给出的关系 R1 ABCD ACD gt B AC gt D D gt C AC gt B R2 ABCD AB gt C ABD gt C ABC gt
  • 如何在不缩小的情况下构建 React 的生产版本?

    背景 我或多或少都在关注使用 React 设置本地开发环境的官方指南 https reactjs org tutorial tutorial html setup option 2 local development environment