gpt4 book ai didi

babeljs - 如何防止 JS 中的 babel 变换运算符 'typeof'

转载 作者:行者123 更新时间:2023-12-04 01:04:56 26 4
gpt4 key购买 nike

我用 ES6 语法开发了一个 JS SDK。 SDK 的文件大小约为 8Kb。用 babel 编译后,SDK 大小约为 20Kb。我发现 babel 使用帮助程序“ babel-runtime/helpers/typeof ”转换运算符 typeof,这增加了我的 SDK 的大小。如果我不在我的 SDK 中使用 typeof,我的 SDK 的文件大小大约是 7Kb。

_validateCallback(fnName, arg) {
if (typeof arg !== 'function') {
throw new TypeError(`[${fnName}]'s arguments[0] must be a function, but get a ${typeof arg}`);
}
}

我的 .babelrc 的详细信息:

{
"presets": [
[
"env",
{
"targets": {
"browsers": [
"last 2 versions",
"ie >= 9"
]
}
}
],
"stage-2"
],
"plugins": [
"transform-runtime"
]
}

package.json devDependencies
{
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.7.0",
"babel-preset-stage-2": "^6.24.1",
"webpack": "^4.37.0",
"webpack-cli": "^3.3.6"
}

我的 webpack.config.js 的细节

{
mode: 'production',
entry: './main.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'botapp-sdk.' + PACKAGE.version + '.js',
library: 'BotApp',
libraryTarget: 'var',
},
plugins: [

new webpack.HashedModuleIdsPlugin(),
new webpack.optimize.ModuleConcatenationPlugin(),
new webpack.BannerPlugin(PACKAGE.name + ' - ' + PACKAGE.version),
],
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: 'babel-loader'
}
]
}
}

我需要阻止 babel 转换 'typeof',这样我就可以减少我的 SDK 的文件大小。

有什么办法可以防止 babel 变换操作符 typeof 吗?

最佳答案

我一直在寻找解决问题的方法:

@@ -8,7 +8,10 @@
"last 2 versions",
"ie >= 9"
]
- }
+ },
+ "exclude": [
+ "transform-es2015-typeof-symbol"
+ ]
}
],
"stage-2"

exclude 详情见: https://babeljs.io/docs/en/babel-preset-env#exclude

关于babeljs - 如何防止 JS 中的 babel 变换运算符 'typeof',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57194480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com