假设webpack配置如下所示

{
    entry: path.join(__dirname, 'src', 'index.js'),
    output: {
    path: path.join(__dirname, 'build'),
    filename: 'bundle.js'
},

现在从webpack开始构建

enter image description here

以及react脚本构建的构建(静态包含css、js和媒体在单独的文件夹中)

enter image description here

Question:与react脚本构建相比,webpack有什么特别的优势吗?(包括但不限于性能)

NOTE:Package.json被编辑以实现这一点.

推荐答案

Webpack是一个通用Bundle 包,其应用程序超出React.create-react-app年前,网络上充斥着建立一个全新的React项目的例子,该项目使用webpack作为Bundle 包.它非常灵活,可以处理包括React应用程序所需内容以及其他内容.它适用于Angular、Vue、NodeJ甚至Web组装.

但它过go 需要一段时间来设置.您需要了解它的工作原理并对其进行配置,以便将React+ES6代码传输到plan vanilla JS中.你需要决定你喜欢的输出 struct ,并为其配置webpack.然后还添加了热模块重新加载和代码拆分支持.在此期间,您还需要添加Webpack所需的其他插件,以支持上述所有功能:).

这自然会让刚开始接触React的人感到有些疲劳.

因此,facebook创建了cra,它在内部使用webpack,预先配置为包含所有优秀的工具,以处理这些基本问题,并帮助您专注于代码的react 部分.它会尽可能对您隐藏webpack,否则如果用户更改配置,构建过程可能会中断.

除此之外,cra使用的 struct 约定不应该对基本的网页包设置产生任何性能影响.这只是个惯例.

那么你的问题应该是when would I use create-react-app and when would I use Webpack?

作为一名初学者,你可能希望在专注于react应用程序时坚持使用cra.最终会有一天,cra在幕后管理的网页包配置不支持您想要做的事情.一个非常常见的例子是,如果您想编写一个组件库,以便在其他应用程序中重用.cra无法做到这一点(这与整个应用程序有关:).然后你可以切换到webpack并开始学习它.

Reactjs相关问答推荐

无法在jest中发布行动

ReferenceError:未在Redux组件中定义窗口

在Redux工具包查询中,是否可以将标记应用到API切片内的所有端点?

在react.js的条形图中获取错误&unfined是不可迭代的

安装后未渲染tailwind

是否为Reaction中未使用的组件生成Tailwincss样式?

在ReactJS的monaco编辑器中添加美人鱼语法

未定义发送的数据无法在reactjs中找到原因

StrictMode+SetInterval=双重渲染(即使使用useEffect清理)

onClick 事件处理程序未应用于样式组件

console.logs 没有显示在浏览器控制台上,但显示在我的终端上

React设置上下文并进行导航

无法在react 中向表中添加行

计数器递增 2 而不是 1

如何使用 redux 和 react-plotly.js

使用 MuiCssBaseline 在所有 MUI v5 标签上设置边距 0

表单错误后 Ionic React 无法 Select 单选按钮

我应该使用 useEffect 来为 React Native Reanimated 的 prop 值变化设置动画吗?

更新 Next.js 路由查询更改的状态会导致无限循环

导航到屏幕时,react 本机上下文状态变为未定义