我正在使用带有 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 开箱即用会更好。
感谢您的帮助
相关分类