Welcome to ZaiZheLe Developer Zone-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.4k views
in Technique[技术] by (71.8m points)

当项目使用多个npm包,如何解决babel代码重复问题?

比如项目依赖a b c 三个npm包(都是自己写的)
这3个包都是用的es6+编写的
每个包通过各自babel编译后生成dist/index文件作为包的入口,例如:

 "main": "dist/index.js",

那么每个index.js其实都包含了babel的添加的兼容代码(core3大概60k)

导致现在我的项目因这3个包多了60*3K代码,其中有60*2k代码是多余的

大神们,请问如何避免多增加120k代码???


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

这其实牵扯到polyfill的2种构建方式,一种向你这样先构建再运行, 就会导致同一个语法编译了好几遍, 另外一种就是runtime,把需要ployfill的代码,一起打包到线上,那么需要兼容的语法会在执行的时候去运行polyfill这, 可能需要后面一种做法,比较简单的做法是在.babelrc里面的preset种声明useBuiltIns:usage


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to ZaiZheLe Developer Zone-Open, Learning and Share
...