【问题标题】:Tree Shaking without Babel in webpack 4在 webpack 4 中没有 Babel 的 Tree Shaking
【发布时间】:2019-02-14 17:26:08
【问题描述】:

在 webpack 4 中没有 Babel 的情况下,外部模块(如 React 或 Antd)是否可以摇动(摇树)?

示例反应结构: node_modules->react 文件夹包括 /cjs 和 /umd 目录。

设置:
项目: https://github.com/webpack/webpack/tree/master/examples/harmony-unused
配置 https://webpack.js.org/guides/tree-shaking/
Typescript-Loader(可选)https://github.com/TypeStrong/ts-loader

src 文件会被摇动,都包括像antd这样的node_modules或者react not。

向里奇问好

【问题讨论】:

    标签: reactjs webpack antd tree-shaking


    【解决方案1】:

    您可以从所有包中删除 react 和 reactdom 或任何其他使用外部组件的包,并使用页面上的脚本标签加载一次。

    const CopyWebpackPlugin = require('copy-webpack-plugin');
    module.exports = {
    externals: {
    react: 'React',
    'react-dom': 'ReactDOM'
    },
    entry:{},//entry files
    output: {} // output path and files
    plugins: [
    new CopyWebpackPlugin([
    {
    from: path.join('src/Commons/Polyfills/Symbol.js'),
    to: 'manifest.js'
    },
    {
    from : path.join('node_modules/react/umd/react.production.min.js'),
    to : 'react.js'
    },
    {
    from : path.join('node_modules/react-dom/umd/react-dom.production.min.js'),
    to : 'react-dom.js'
    }
    ]),
    ]
    };
    

    【讨论】:

    • 感谢您的回答,但通过这些方式,我将完整的反应包添加到我的构建中。我理解 Tree-Shaking 从构建中删除所有未使用的包以减少发送给客户端的文件大小。
    猜你喜欢
    • 2018-05-19
    • 2017-09-05
    • 2019-02-08
    • 2018-04-29
    • 2019-01-28
    • 2018-08-30
    • 1970-01-01
    • 2017-07-01
    • 2016-12-28
    相关资源
    最近更新 更多