【Webpack】处理第三方类型文件的过程及Babel

webpack 处理第三方文件类型的过程:

  1. 发现这个要处理的文件不是 JS 文件,然后就去配置文件中查找有没有对应的第三方 loader 规则
  2. 如果能找到对应的规则,就会调用对应的 loader 处理这种文件类型
  3. 在调用 loader 的时候,是从后往前(从右往左)调用的
  4. 当最后一个 loader 调用完毕,会把处理结果直接交给 webpack 进行打包合并,最终输出到 bundle.js 中去

通过 Babel 可以帮我们将高级的语法转换为低级的语法

  1. 在 webpack 中可以运行如下两套命令,安装两套包去安装 Babel 相关的 loader 功能:
  • 第一套包:npm i babel-core babel-loader babel-plugin-transform-runtime -D
  • 第二套包:npm i babel-preset-env babel-preset-stage-0 -D
  1. 打开 webpack 的配置文件,在 module 节点下的数组中,添加一个新的匹配规则:{ test:/\.js$/, use: 'babel-loader', exclude:/node_modules/ }
  • 注意:在配置 babel 的 loader 规则的时候,必须把 node_modules 目录,通过 exclude 选项排除掉,原因:如果不排除 node_modules,则 babel 会把 node_modules 中所有的第三方 JS 文件都打包编译,这样会非常消耗 CPU,同时打包速度非常慢;哪怕最终 babel 把所有 node_modules 中的 JS 转换完毕了,但是项目也无法运行
  1. 在项目的根目录中新建一个叫做 .babelrc 的 babel 配置文件,这个配置文件属于 JSON 格式,所以,在写 babelrc 配置的时候必须符合 JSON 语法规范
  • 在 babelrc 中写如下的配置:presets(语法)
{
  "presets":["env","stage-0"],
  "plugins":["transform-runtime"]
}
  1. 了解目前安装的 babel-preset-env 是比较新的 ES 语法,之前安装的是 babel-preset-es2015,现在,出了一个更新的语法插件,叫做 babel-preset-env,它包含了所有的和 es\*\*\*\*相关的语法
posted @ 2020-04-14 18:28  [ABing]  阅读(232)  评论(0编辑  收藏  举报