出身背景

我一直在关注大约the official guide to setup a local dev environment with react个,它似乎使用了create-react-app,这设置了很多.

现在,如果我运行npm run build,我会得到build文件夹中所有内容的缩小版本.

问题

所以要么:

  • 我能访问npm start生成的文件吗?因为这些似乎是未经修改的.(build从未在此处修改过)
  • 或者我可以运行npm run build,这样它就可以用未动画化的文件进行"开发"构建吗?

try

我的目标只有to get access to an unminimized version of react scripts.

至于最后一个问题,我试了some parameters and enironmental variables as suggested in this question个,但正如你所见,它失败了:

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

> example-project@0.1.0 build [...]
> react-scripts build

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

系统

My package.json有默认脚本:

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

请不要问我为什么要这样做,也不要试图让我相信这是不好的.我想要这个的原因有很多,比如调试或者this specific use case.

推荐答案

要更改webpack配置和构建脚本,您必须从create react应用程序中弹出(我不建议执行此步骤,因为它会 destruct future 的兼容性),或者可以使用rewire等工具覆盖某些设置

看看这个

我个人用的只是重新布线

npm i rewire --save-dev

这是我过go 为一个项目创建的一个配置示例,效果非常好!

  1. 创建一个构建.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 = '../';

然后在我的包裹里.json我更改了npm脚本链接,如下所示

package.json

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

所以,如果你真的想退出CreateReact应用程序,你所要做的就是运行它

npm run-script eject

然后,您将获得一个包含create react应用程序使用的所有配置的新文件夹

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

如果有帮助的话,请别忘了把它标记为答案

Reactjs相关问答推荐

实时收听react前端应用程序中的webhook响应

如何处理具有REACTION-REDUX状态的Nextjs路由警卫

Next.js:提交表单时状态尚未就绪

在transformResponse中使用来自其他查询的缓存

如何使ionic 面包屑在州政府条件下可点击?

根据用户 Select 的注册类型更改表单字段

Redux 工具包不更新状态

数据表格组件需要所有行都具有唯一的ID属性.或者,您可以使用getRowId属性.

React - 将一个充满空值的无限大小的数组存储在 ref 中是否可以,或者我应该重置数组吗?

使用 toast 时挂钩调用无效

我正在通过 API(有效)从 MongoDB 传递数据.可视化但我不断收到此 TypeError: Cannot convert undefined or null to object

Cypress 组件测试不渲染react 组件(但它的内容)

添加新行时自动打开可扩展表格(Antd 表格,ReactJS)

如何将我的 ID 值传递给下一个组件?

自动重新获取不起作用 - RTK 查询

错误:无效挂钩调用.钩子只能在函数组件的主体内部调用.使用 next/router 时

错误:无效挂钩调用.钩子只能在函数组件的主体内部调用.使用 next/router 时

为什么我在此代码段中看不到 useEffect for count = 1?

调用 Jest 和服务方法的问题

在 React 中使用使用状态挂钩合并两个数组