webpack 包超过 2MB,而报告的模块大小约为 700k

我正在使用带有 Typescript 的 webpack 和以下配置:


webpack.config.js:


const path = require('path');


module.exports = {

  entry: './src/APIClient.ts',

  devtool: 'inline-source-map',

  module: {

    rules: [

      {

        test: /\.tsx?$/,

        use: 'ts-loader',

        exclude: /node_modules/

      }

    ]

  },

  resolve: {

    extensions: [ '.tsx', '.ts', '.js' ]

  },

  output: {

    filename: 'reportserver.client.webpacked.js',

    path: path.resolve(__dirname, 'dist')

  }

};

tsconfig.json:


{

    "compilerOptions": {

        "noImplicitAny": true,

        "removeComments": true,

        "preserveConstEnums": true,

        "esModuleInterop": true,

        "allowSyntheticDefaultImports": true,        

        "sourceMap": true,

        "module": "commonjs",

        "target": "es6",

        "lib": ["dom", "es6"],

        "typeRoots": [ "./@types", "./node_modules/@types"]

    }

}

我正在运行npx webpack --display-modules并得到:


mylib.webpacked.js  2.46 MiB       0  [emitted]  [big]  main

Entrypoint main [big] = mylib.webpacked.js

 [0] ./node_modules/node-libs-browser/node_modules/timers-browserify/main.js 1.97 KiB {0} [built]

 [1] (webpack)/buildin/global.js 472 bytes {0} [built]

 [2] ./src/utils/ArrayHelpers.ts 3.61 KiB {0} [built]

 [3] ./src/ApexChartProvider.ts 4.97 KiB {0} [built]

 [4] ./node_modules/promise-polyfill/src/finally.js 499 bytes {0} [built]

 [5] ./src/APIClient.ts 5.54 KiB {0} [built]

 [6] ./src/utils/HttpCllient.ts 1000 bytes {0} [built]

 [7] ./node_modules/promise-polyfill/src/index.js 5.82 KiB {0} [built]

 [8] ./node_modules/setimmediate/setImmediate.js 6.32 KiB {0} [built]

 [9] ./node_modules/process/browser.js 5.29 KiB {0} [built]

[10] ./src/utils/HtmlHelpers.ts 780 bytes {0} [built]


报告的模块大小小于 700KiB,而包大小超过 2MB。1.3MB 来自哪里?是 webpack 开销还是一些默认的 polyfills?


与 browserify 相同的构建大约为 1MB,我一直认为 webpack 开箱即用会更好。


感谢您的帮助


临摹微笑
浏览 160回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript