与ES6模块相比,ES5模块是否加入了webpack构建时间?

时间:2016-11-11 15:16:02

标签: build npm webpack ecmascript-6 babeljs

按照惯例,当我们编写ES6模块时,我们将源代码放在my_project/my_models/serializers.pyc in __init__(self, documents, many, my_arg) ---> 25 super(Schema, self).__init__(documents, many=many) my_virtualenv/lib/python2.7/site-packages/marshmallow/schema.pyc in __init__(self, obj, extra, only, exclude, prefix, strict, many, skip_missing, context) --> 273 self._update_fields(self.obj, many=many) my_virtualenv/lib/python2.7/site-packages/marshmallow/schema.pyc in _update_fields(self, obj, many) --> 636 ret = self.__filter_fields(field_names, obj, many=many) my_virtualenv/lib/python2.7/site-packages/marshmallow/schema.pyc in __filter_fields(self, field_names, obj, many) --> 683 attribute_type = type(obj_dict[key]) TypeError: list indices must be integers, not str 文件夹中,并使用srcbabel-loader将其编译为webpack或{{1 }}将代码设置为ES5,并将lib条目设置为dist文件夹,然后发布到npm。

  

一方面,用户可以在不使用webpack的情况下使用该模块,代码可以运行。另一方面,使用webpack时,ES5代码可能会缩短main时间,因为它已经是ES5代码。

我感到困惑的是第二点,当使用webpack时,dist中的ES5代码会减少babel-loader时间,以便我们可以加入webpack构建性能吗?

问题几乎是关于具有webpack构建性能的ES5 npm模块,虽然它是我们已经做过的惯例,但我只是想了解一些关于webpack构建性能的内容。谢谢!

1 个答案:

答案 0 :(得分:1)

是的,通常公共包与已经转换的源一起分发。对于Webpack和babel-loader,性能优势在于您可以按原样使用这些源,而无需使用babel-loader处理它们,因此您通常会看到:

{
    test: '\.js$',
    loader: 'babel',
    exclude: ['node_modules']
}

所以,我也对这段摘录感到困惑,特别是为什么人们想用Babel解析ES5代码,因为最终不会发生转换。

无论哪种方式,源代码总是由Webpack解析而不必解析,事先用babel-loader转换它们可以提高性能。