我或多或少一直在遵循官方指南来设置带有react的本地开发环境,并且似乎使用create-react-app
,这确实设置了很多东西。
现在,如果我运行,npm run build
我会在build
文件夹中得到所有内容的缩小版本。但是,如果我运行npm start
NodeJS提供的版本,则似乎没有任何修改。但是我看不到这些文件。
所以:
npm start
某处生成的文件吗?由于这些似乎未修改。(build
在那里从未修改过)npm run build
,以便使用未最小化的文件进行“开发”构建?我的目的只是 获得对React脚本的最小化版本的访问 。
至于最后一个问题,我尝试了该问题中建议的一些参数和环境变量,但是如您所见,它失败了:
$ NODE_ENV=dev npm run build --dev --configuration=dev
> example-project@0.1.0 build [...]
> react-scripts build
Creating an optimized production build...
[...]
我的package.json
具有默认脚本:
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
注意:
请不要问我为什么这样做,或尝试说服我这是不好的。我可能想要这样做的原因有很多
要更改webpack配置和构建脚本,您必须从create-react-app中退出(我不建议您执行此步骤,因为这会破坏将来的兼容性),或者您可以使用诸如rewire之类的工具来覆盖某些设置
看看这个 https://github.com/timarney/react-app-rewired
我个人只是重新接线
npm i rewire --save-dev
这是我过去为我的一个项目创建的示例配置,效果很好!
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脚本的节点构建)
package.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使用的所有配置的新文件夹
但是正如我之前所说,没有理由不使用rewire而是覆盖配置而不是弹出
如果有帮助,请不要忘记将其标记为答案
问题内容: 我正在处理备份脚本,并希望压缩文件目录: 这可以压缩它,但是当我解压生成的文件时,它包括完整的文件结构:这些文件位于中。 有没有一种方法可以排除父目录,从而使生成的tar只知道最后一个目录()? 问题答案:
当需要将应用部署到生产环境时,只需运行 vite build 命令。默认情况下,它使用 <root>/index.html 作为构建入口点,并生成一个适合通过静态部署的应用包。查看 部署静态站点 获取常见服务的部署指引。 浏览器兼容性 生产版本假设浏览器对 原生 ES 模块动态导入 有基本支持。默认情况下,所有代码构建都会以 支持原生 ESM script 标签的浏览器 为目标。 一个轻量级的 动
问题内容: 注意:我在使用React Native时遇到了这个特定的问题,但是我想这也同样适用于React。 我有一个使用React.Component构建的React组件。我不需要设置状态,但是我有道具。我建议的语法如下: 我知道我可以使用函数来构造此组件,如下所示: 但是我更喜欢前者,因为我的组件会增长,可能会有状态等,我只想以相似的方式构建所有组件。 现在,我的linter抱怨拥有一个无用的
问题内容: 我想知道是否有任何方法可以将C ++类公开给Python,但无需构建中间共享库。 这是我理想的情况。例如,我有以下C ++类: 我想以某种方式将此类(或其实例)转换为PyObject *,以便将其作为参数(参数)发送给例如PyObject_CallObject: 另一方面,在python端,我有一个wrapperFunction,它将我的C ++类(或其实例)上的指针作为参数,并调用其
我为我的系统创建了一些报告,该报告由许多表组成。为此,我创建了一个带有@Entity注释的域类,并实现了一个JpaRepository存储库,我将本机查询与@query一起使用,如下所示。 我的问题是,对于每个域类,hibernate都在创建一个表,如何停止它? 我的域类: 我的存储库:
问题内容: 在Mongoose的早期版本(针对node.js)中,可以选择使用它而不定义架构 但是在当前版本中,“ noSchema”功能已被删除。我的架构可能会经常更改,并且实际上不适合已定义的架构,因此,是否有一种新的方式在猫鼬中使用无架构的模型? 问题答案: 我想这就是您要寻找猫鼬严密的东西 选项:严格 严格选项(默认情况下启用)可确保未在架构中指定的添加到模型实例的值不会保存到数据库中。