babel-loader
babel-loader可以使用option属性来代替.babelrc. 需要注意版本
module: {rules: [{test: /\.js?$/,loader: 'babel-loader',exclude: /node_modules/,options: {presets: ['react', 'stage-0', ['env', {targets: {browsers: ['last 2 versions']}}]]}}]}
presets:代表字段设定转码规则
- babel-presets-env 相当于( babel-preset-es2015, babel-preset-es2016, and babel-preset-es2017 together),其targets参数可以设定打包后支持版本,背后参考 browserslist 浏览器支持程度。
- babel-polyfill
babel在转码的时候只转换语法层面的,这意味着你可以使用新的内置对象比如 Promise 或者 WeakMap, 静态方法比如 Array.from 或者 Object.assign, 实例方法比如 Array.prototype.includes 和生成器函数(提供给你使用 regenerator 插件)。为了达到这一点, polyfill 添加到了全局范围,就像原生类型比如 String 一样。 ,需要安装,然后在项目中直接引用就可以.
import babel-polyfill
- babel-runtime-transform
babel在打包的过程中会对一些公共方法使用了非常小的辅助代码,比如 _extend。 默认情况下会被添加到每一个需要它的文件中,你可以引入 babel runtime 作为一个独立模块,来避免重复引入。引入 babel-plugin-transform-runtime 并且使所有辅助代码从这里引用,比如开发第三方ui库的时候,可以使用,正常开发可以不使用。
注意: 使用babel-plugin-transform-runtime 必须依赖babel-runtime,可以在.babelrc文件中使用.
如果在用
