为什么即使使用transform-runtime,装饰器的Babel助手也能在每个模块中内联?

时间:2017-04-08 23:46:23

标签: webpack babeljs

我的配置:

{
    test: /\.(js)$/,
    loaders: 'babel-loader',
    exclude: /node_modules/,
    query: {
        presets: [
            [`env`, {
                loose: true,
                modules: false
            }],
            `stage-0`
        ],
        plugins: [
            'transform-decorators-legacy',
            [
                'transform-runtime',
                {
                    polyfill: false,
                    regenerator: true
                }
            ]
        ]
    }
},

大多数Babel助手都是从babel-runtime模块导入的,但_initDefineProp_applyDecoratedDescriptor以及_initializerWarningHelper不适用。

我做错了什么?为什么这些助手没有进口?

1 个答案:

答案 0 :(得分:1)

目前只有Babel核心系统开发的助手才会在babel-runtime中公开。由于decorators-legacy在Babel 6中作为单独的repo维护,因此无法在babel-runtime中共享帮助程序。

Babel 7 legacy可能会被保留为Babel核心系统的一部分,这将允许这样做。

目前,没有办法解决这个问题。也就是说,一旦文件被gzip压缩,我就不会指望重复的帮助者在大小上做出大量差异。