Webpack将所有未使用的导出导入捆绑

问题描述

我有几个带有不同入口点的Webpack配置,用于构建不同的捆绑软件,其中一些共享某些模块。我试图使未使用的导出树摇摇欲坠,但是通过以下设置,我的捆绑包最终将所有可能模块中的所有导出都包含在其中,即使其中大多数未导入任何地方也是如此。我在做什么错了?

'index.ts'作为这些入口点之一的示例。

文件夹结构:

src/
    /shared-modules
    ...
    index.ts
    other.ts
    ...

webpack.config.js:

{
  entry: {
    index: './src/index.ts',},output: {
    path: path.resolve(__dirname,`dist/${ env }`),filename: 'index.js'
    },module: {
      rules: [
        {
          test:/\.ts$/i,include: path.resolve(__dirname,'src'),use: ['babel-loader','ts-loader'],exclude: /node_modules/
        }
      ]
    },resolve: {
      extensions: ['.webpack.js','.web.js','.ts','.js']
    },mode: 'production',optimization: {
      usedExports: true,minimize: true,minimizer: [
        new TerserPlugin()
      ]
    }
  }
}

.babelrc:

{
  "presets": [
      [
          "@babel/preset-env",{
              "modules": false
          }
      ]
  ]
}

tsconfig.json:

{
  "files": [
    "src/index.ts","src/other.ts"
  ],"compilerOptions": {
    "module": "ES6","moduleResolution": "Node","target": "ES5","sourceMap": true,"lib": ["ES2015","ES2017","DOM"]
  },"exclude": [
    "node_modules"
  ]
}

package.json:

{
  "name": "script","type": "commonjs",...
  "sideEffects": [
    "./src/index.ts"
  ],...
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)