在我搜索生成并以性能名称提供尽可能少的javascript字节时,我已经敲了一下墙。我正在使用stage-3和es2015预设,因此我需要Polyfill和Helpers。
值得一提的是我没有捆绑我的所有文件,我懒得用RequireJS加载它们。我希望将polyfill和helpers与我的main.js
捆绑在一起。
我的问题是:
是否可以生成polyfill和external-helpers的自定义构建,仅包含我实际使用的ES功能?
1。填充工具:
polyfill几乎是90kb,似乎包括Promises,Iterators,Generators,Reflect,Map / Set和整个ES2015标准库。大部分,我实际上并不需要。如果我只使用迭代器和生成器怎么办?我想从90kb中削掉每个可能的字节。似乎polyfill是全有或全无的情况。
我当然可以手动实现这一点,只需捆绑我需要的core-js的部分,但是我需要维护一个我使用的确切ES功能的列表,如果可能的话我想避免这样做。我不知道从哪里开始使用Reflect的自定义再生器。
2。外部助手:
由于我不希望我的外部帮助程序在多个文件中重复,因此我一直在寻找生成它们的方法。文档似乎很少,但我发现了这个:
var code = require('./node_modules/babel-core/lib/tools/build-external-helpers')();
这给了我所有在babel中存在的助手,而不仅仅是我需要的助手,与polyfill相同的情况。在内部,Babel可能知道我正在使用哪些功能,因为它会生成像babelHelpers.createClass这样的代码。