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

在使用webpack时,使用es6命名导入是否会减少捆绑包的大小

范兴文
2023-03-14

当我使用这样的命名导入时,我需要理解

import { render } from 'react-dom'

webpack包中是否只包含渲染方法或整个模块,特别是在使用树抖动时,通过在babel配置中将模块设置为false,让webpack来处理它们?

在导入react的情况下也是如此

import React from 'react'
import React, { Component, PropTypes } from 'react'

正确的方法是什么?

共有1个答案

霍建章
2023-03-14

树抖动适用于可以静态分析的模块(在不运行代码的情况下获得整个依赖树)-它仅适用于ES2015模块,而不是公共JS(节点)模块。

reactreact dom,截至本文撰写之时(react@15.4.x),不作为ES2015模块发布。那么这两个-

import { render } from "react-dom";

或者

import ReactDOM from "react-dom";

将导致整个react dom包含在您的包中。这同样适用于react和其他作为CommonJS模块或UMD发布的库。

 类似资料:
  • 我有一个使用react开发的网站,它只有一个页面,但产品包大小是1.11MIB。我正在使用firestore、firebase storage、material UI、react redux,该应用程序运行良好,除了捆绑包大小外,一切正常。 我的网页包配置文件 我不知道我在这里错过了什么来减小节点模块的大小。如果我们有任何其他选择,以减少捆绑大小,请给我一个建议。

  • 我有一个Gatsby.js项目,其中我的包的解析大小是3.92MB。其中1.1MB是。传单似乎也提供了只有508KB的。阅读本期后,每当我导入传单时,我总是导入较小的版本,如下所示: 不管怎样,每当我运行Webpack Bundle Analyzer时,都会导入和:Webpack Bundle Analyzer Result 我提到的GitHub问题似乎暗示了如何配置webpack以使用优化版本,

  • 我对一个难以捉摸但可能非常强大的DropWizard特性Bundles感到好奇。根据文件: Dropwizard捆绑包是一组可重用的功能,用于定义应用程序的行为块。 鉴于DropWizard(DW)的文档非常丰富,我感到震惊的是,这实际上是对bundle的唯一解释。我在野外看到了一些这样的例子: 资产组合 但我不明白的是:bundle似乎只是在jar中进行代码打包和分发。那么,为什么我不能编写“原

  • 提前感谢。我有问题启动一个osgi捆绑包,它给出了这个错误消息:包/捆绑包将不安装。它编译,并构建好,当部署到Karaf时,它不会加载和抱怨丢失的布线包,看起来像是正在导出和导入。但是缺少一个版本id。 执行命令时出错:无法启动bundle mvn:com。通用电气。数字的passthru/passthrumt1。dataserviceimpl/1.0.1-SNAPSHOT在功能部件passthr

  • 当我运行来捆绑我的React应用时,一旦捆绑完成,下面的webpack捆绑分析器就会启动,显示我的应用捆绑包是由什么组成的: 虽然我对此并不乐观,但这似乎是一个相当大的构建,这可能会减慢我的应用程序的速度。 d3似乎是我的捆绑包中最大的部分之一,而且d3似乎被捆绑了两次——一次是单独捆绑,一次是与d3 tip捆绑。(我的React应用程序是一个图形化/d3密集型应用程序,我在整个应用程序中使用了几

  • 我正在将我的spring-java项目转移到OSGi。 我有一些依赖项,这些依赖项在spring ebr repo或maven repo中不能作为包提供。处理它们的最佳方法是什么? null