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

树摇动不适用于Webpack4和语义ui

孙德宇
2023-03-14

我只从语义ui中导入一个组件

import { Button as SemanticButton} from 'semantic-ui-react';

但是在运行webpack-p之后,我看到了捆绑包中语义UI的所有组件,其大小超过300KB(~30KB,没有语义UI)。我安装了所有最新版本:webpack@4.14.0; 语义用户界面-react@0.81.3

这是我的webpack.config.js

module.exports = {
  entry: './src/index.js',
  resolve: {
    modules: [
      path.resolve('./'),
      'node_modules',
    ],
    extensions: ['*', '.js', '.jsx', '.css', '.less'],
  },
  output: {
    filename: 'main.js',
    path: path.resolve(__dirname, 'dist'),
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
        },
      },
    ],
  },
  externals: {
    react: {
      root: 'React',
      commonjs: 'react',
      commonjs2: 'react',
      amd: 'React',
    },
    'react-dom': {
      root: 'ReactDOM',
      commonjs: 'react-dom',
      commonjs2: 'react-dom',
      amd: 'ReactDOM',
    },
    'prop-types': {
      root: 'PropTypes',
      commonjs: 'prop-types',
      commonjs2: 'prop-types',
      amd: 'PropTypes',
    },
  },
};

我做错什么了吗?我如何使树摇动工作与语义ui-反应?我不想看到捆绑包中未使用的组件。

共有1个答案

萧波峻
2023-03-14

这个问题的解决办法变得相当简单。您只需要正确配置Babel。

只需在您的babel预设环境配置中指定“modules”:false,就可以让babel按照我们想要的方式运行,从而允许webpack分析您的依赖关系树并摆脱那些未使用的依赖关系。此外,这个过程不会导致兼容性问题,因为webpack最终会将您的代码转换为广泛兼容的格式。

所以. babelrc可以看起来像这样:

{
  "presets": [
    ["env", {
      "modules": false
    }]
  ]
}

来源

 类似资料:
  • 我试图减少我的nextjs项目的捆绑包大小,但我遇到了一些树抖动的问题。让我解释一下。我有一个Flags.js文件,可导出多个标志组件: 然后,我只将两个标志导入到另一个组件中: 但我注意到,当我使用webpack bundle analyzer查看捆绑包时,所有标志都被导入。如果我在package.json中应用了sideEffects to false,js包文件大小会减少400kb,但是在导

  • 我想要什么 在JPanel上,我有一个JButton和一个JTextArea。按下JButton后,必须在JTextArea中打印某些文本。此特定文本由if-else语句确定。if-else的条件基于整数变量R。 基本上,这是我试图进行的类似问答的调查。我使用R来记录用户的答案。当用户单击一个选项时,R的值会更新。 我使用字符串变量你的手机。如果R的值为最后例如120,则您的手机将更新为字符串,例

  • im使用pyqt5创建gui并使用matplotlib 但是当我尝试创建pyInster可执行文件时,它不起作用 我尝试了以下几种解决方案: 1-无法使用PyInstaller创建工作的PyQt5 Python可执行文件/ 2-在PyInstaller,为什么不会NumPy。随机的。作为模块的公共负载? 3-PyInstaller生成的可执行文件中出现Python SSL导入错误 我尝试使用cx\

  • 问题内容: 以下代码可在Google Chrome beta和IE 7中运行。但是,Firefox似乎对此有问题。我怀疑这是我的CSS文件如何包含的问题,因为我知道Firefox对跨域导入不太友好。 但这仅仅是静态HTML,而没有跨域问题。 在我的landing-page.html上,我像这样进行CSS导入: 在main.css中,我还有另一个导入,例如: 在type.css中,我有以下声明: 我

  • 因此,下面的代码适用于一个活动,但当我使用onCreateView将其添加到一个片段中时,应用程序就会崩溃 Fragment公共类步骤扩展Fragment{ 12-13 15:17:15.062 984-984/com.stephenh.daytrack.daytrack.daytrackstephenh E/AndroidRuntime:致命异常:主进程:com.stephenh.daytrac

  • 我的GMAILIMAP代码在PHP从我的localhost工作得很好,但它不能从域工作。 我已完成以下项目: 1) 允许不太安全的应用登录2)在GMAIL帐户中启用IMAP 3)未启用双因素身份验证。4) 我也验证了帐户访问权限5)我还允许:http://www.google.com/accounts/DisplayUnlockCaptcha 可能是我在实时服务器上没有SSL的问题吗? 但我不断得