step one:

https://babeljs.io/setup

Choose your tool (try CLI)

select webpack

Step two:

npm install --save-dev babel-loader @babel/core
module: {
rules: [
{ test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" }
]
}
npm install @babel/preset-env --save-dev

In order to enable the preset you have to define it in your .babelrc file, like this:

{
"presets": ["@babel/preset-env"]
}

如果不想添加.babelrc文件可以在webpack.config.js中直接这样写:

{
test: /\.js$/,
exclude: /node_modules/,
loader: "babel-loader",
options: {
presets: ["@babel/preset-env"]
}
}

Step three:

有些低版本的浏览器,没有内置新JavaScript语法,比如说promise、map等等

我们需要借助@babel/polyfill将这些语法添加到浏览器https://babeljs.io/docs/en/babel-polyfill

npm install --save @babel/polyfill

If you are using ES6's import syntax in your application's entry point, you should instead import the polyfill at the top of the entry point to ensure the polyfills are loaded first:

import "@babel/polyfill";

如果只想将程序中使用到的新语法添加到浏览器,而没有使用到的新语法不用添加可以这么配置:

{
test: /\.js$/,
exclude: /node_modules/,
loader: "babel-loader",
options: {
presets: [["@babel/preset-env", {
useBuiltIns: 'usage' //如果配置了这个选项 业务代码里import "@babel/polyfill" 可以不用写
          }]]
    } 

}

注意:@babel/polyfill还有其它额外的配置下面是示例,详情请参考: https://babeljs.io/docs/en/usage

Creating a config file named babel.config.json in the root of your project with this content:

{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"edge": "17",
"firefox": "60",
"chrome": "67",
"safari": "11.1",
},
"useBuiltIns": "usage",
}
]
]
}

----------------------------------------------------------------------------------------------------------------------------------------

[以上的配置在写组件库或类库代码时失效,因为@babel/polyfill是全局注入语法的,污染了全局环境]

所以还有另外一种配置方案:https://babeljs.io/docs/en/babel-plugin-transform-runtime

-----------------------------------------------------------------------------------------------------------------------------------------

webpack中使用babel的更多相关文章

  1. [转] webpack中配置Babel

    一.安装 npm install --save-dev babel-loader babel-core babel-preset-env 二.在webpack.config.js中配置module 1 ...

  2. webpack中配置Babel

    Babel是一个javascript编译器,可以将ES6和更新的js语法转换成ES5的,使代码在较老的浏览器里也能正常运行. 一.安装 npm install --save-dev babel-loa ...

  3. webpack中使用babel处理es6语法

    index.js const arr = [ new Promise(()=>{}), new Promise(()=>{}) ]; arr.map(item => { consol ...

  4. webpack中配置babel时遇到的问题

    1.Error: Cannot find module '@babel/core' babel-loader@8 requires Babel 7.x (the package '@babel/cor ...

  5. webpack中babel配置 --- runtime-transform和babel-pollfill

    webpack - babel配置 babel是一个javascript编译器,是前端开发中的一个利器.它突破了浏览器实现es标准的限制,使我们在开发中可以使用最新的javascript语法. 通过构 ...

  6. 深入浅出的webpack构建工具---babel之配置文件.babelrc(三)

    阅读目录 一:理解 babel之配置文件.babelrc 基本配置项 二:在webpack中配置babel 回到顶部 一:理解 babel之配置文件.babelrc 基本配置项 1. 什么是babel ...

  7. 17 webpack中babel的配置

    在webpack中,默认只能处理一部分ES6的新语法,一些更高级的ES6语法或者ES7语法, webpack是处理不了的:这时候,就需要借助于第三方的loader,来帮助webpack处理这些高级的语 ...

  8. vue中引入babel步骤

    vue中引入babel步骤 vue项目中普遍使用es6语法,但有时我们的项目需要兼容低版本浏览器,这时就需要引入babel插件,将es6转成es5. 1.安装babel-polyfill插件 npm ...

  9. [转]webpack中require和import的区别

    webpack中可以写commonjs格式的require同步语法,可以写AMD格式的require回调语法,还有一个require.ensure,以及webpack自己定义的require.incl ...

随机推荐

  1. HTML列表标签

    <ul>无序列表 有2个属性 1.compact 属性: 规定列表呈现的效果比正常情况更小巧.没啥作用 2.type 属性 disc小圆点 square小方块 circle小圆圈(默认) ...

  2. 第三十六篇 入门机器学习——Jupyter Notebook中的魔法命令

        No.1.魔法命令的基本形式是:%命令   No.2.运行脚本文件的命令:%run %run 脚本文件的地址 %run C:\Users\Jie\Desktop\hello.py # 脚本一旦 ...

  3. 不可将布尔值直接与true或者1进行比较

    不可将布尔值直接与TRUR.FALSE或者"0"."1"进行比较. 根据布尔值的定义,零值为"假"(记为FALSE),任何非零值都是&quo ...

  4. torch.cat拼接 stack拼接 分块chunk

    torch.cat拼接 stack拼接 分块chunk 待办 https://blog.csdn.net/qq_39709535/article/details/80803003 stack dim理 ...

  5. 19年SD夏令营游记

    首先,因为自己的刻苦学习(tui),所以游记很短,勿喷... 7.22.2019——报到 话说昨晚热到12点才睡着,在路上大家一直都在玩游戏,没有游戏可玩的我听着歌发呆... 到了山东省外国语职业技术 ...

  6. 劳动人民万岁(拒绝惰性)------- 浅谈迭代对象(Iterable) 迭代器(Iterator)

    一.前戏 问题:如果一次抓取所有城市天气 再显示,显示第一个城市气温时有很高的延时,并且很浪费储存空间 解决方案:以“用时访问”策略,并且能把说有城市气温封装到一个对象里,可用for一句进行迭代 二. ...

  7. java: -source 1.5 中不支持 diamond 运算符 ,lambadas表达式 2018-03-13 22:43:47 eleven十一 阅读数 876更多

  8. bugku web 5

    首先进入网站http://123.206.87.240:8002/web5/index.php 进入之后就会看到 然后点击F12就会打开后台 然后就会发现有一串东西就是这个然后经过搜索是jsfuck ...

  9. AcWing 840. 模拟散列表

    拉链法 #include<cstring> #include<iostream> using namespace std ; ; int h[N],e[N],ne[N],idx ...

  10. 手动搭建的react环境中,关于图片引入的问题

    react手动搭建的环境,require引进来图片不显示,网页src显示[object module] 解决方案 (1)import引进图片 import anli from './img/anli. ...