老项目webpack3升级webpack4 顺便升级到babel7,发现run-time注入了所有的组件,包括公共模块
老项目是webpack3做构建的,今天有时间想把webpack升级到4,babel由6升级到7,出现了run-time相关的问题,求大神解答。
先看babel6的配置
{
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}],
"stage-2"
],
"plugins": [
"transform-vue-jsx",
"transform-runtime",
["import", {
"libraryName": "vant",
"libraryDirectory": "es",
"style": true
}],
[
"component",
{
"libraryName": "element-ui",
"styleLibraryName": "theme-chalk"
}
]
]
}
打包效果
babel7配置
{
"presets": [
[
"@babel/preset-env",
{
"modules": false,
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
},
"useBuiltIns": "usage",
"corejs": 2,
}
]
],
"plugins": [
"@babel/plugin-transform-runtime",
"transform-vue-jsx",
["import", {
"libraryName": "vant",
"libraryDirectory": "es",
"style": true
}
],
[ "component", {
"libraryName": "element-ui",
"styleLibraryName": "theme-chalk"
}
]
]
}
打包效果
可以发现babel7相对于babel6打包的异步加载的组件对应的js都多了node_modules下面只有run-time一个引用,导致打打包比之前大了好多。
babel6下的一个组件整体
babel7下的组件整体
这个是babel7抽离的公共模块 和babel6的基本一致,只有core.js引入不一致,比babel6大了有20多k(压缩后)。
我这个是因为之前run-time注入的不对,还是我升级后注入重复了呢?
看了babel7的文档页没发下有什么配置上的问题
大神们,请问有遇到这种情况的吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
按照
babel6
和babel7
配置差别,@babel/preset-env
多了useBuiltIns
和core-js
的配置,应该去掉这两个配置就好。分别看babel6-env和babel7-env,可以看到
useBuiltIns
默认为false
,如果配置非false
就会自动加入相应需要支持的babel-polyfill
。