reactjs - 使用 webpack 时使用 es6 命名导入是否会减少包大小

标签 reactjs webpack babeljs

我需要了解何时使用这样的命名导入

import { render } from 'react-dom'

webpack 是否仅在包中包含渲染方法或整个模块尤其是在使用 tree shake 时,通过在 babel 配置中将 module 设置为 false 并让 webpack 处理它们?

同样在导入react的情况下

import React from 'react'

&&

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

什么是正确的方法?

最佳答案

Tree-Shaking 适用于可以静态分析的模块(无需运行代码即可获取整个依赖树) - 它仅适用于 ES2015 模块,不适用于 CommonJS(node) 模块。

截至撰写本文时 (react@15.4.x),

reactreact-dom 尚未作为 ES2015 模块发布。所以其中任何一个 -

import { render } from "react-dom";

import ReactDOM from "react-dom";

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

关于reactjs - 使用 webpack 时使用 es6 命名导入是否会减少包大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43146111/

相关文章:

node.js - 在 iis 上运行 react isomorphic

css - Vue.js 作用域 css 在单个文件组件中不起作用

json - React安装错误怎么办

javascript - 箭头函数未编译

javascript - 如何在 Next.js 动态路由中避免 "id undefined"?

reactjs - 如何使用 Redux connect 传递 props

javascript - 梅文本字段。更改图标时,无法点击

node.js - Webpack、vue.js 和组件包分离

javascript - 如何获得正则表达式以匹配以 ".js"结尾但不以 ".test.js"结尾的文件?

javascript - 如何使用 webpack 丑化 javascript