最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • babel7配置

    正文概述 掘金(不说话装高手)   2020-11-30   735

    我的配置

    babel.config.js

    // babel.config.js
    module.exports = {
      // presets 生效顺序是倒序的
      presets: [
        [
          "@babel/preset-env",
          {
            // 如果配置,会覆盖browserslist配置,推荐使用browserslist,这样postcss以及其他工具共同使用一份配置
            // targets: {
            // "chrome": "58", 编译后的语法最低支持到chrome 58
            // "esmodules": true 目标为支持es6模块的浏览器环境
            // "node": true // 目标代码为当前node最新版本的标准
            // },
            useBuiltIns: "usage", // 按需自动引入corejs@3的polyfill,entry是全局引入
            // 需安装生产依赖core-js@3和regenerator-runtime
            corejs: "3", // 当使用usage参数时,必须指定corejs版本,默认corejs@2,所以这里配置3,生产依赖需要安装core-js@3
          }],
          ["@babel/preset-react"],
          ["@babel/preset-typescript"]
      ],
      // plugins 生效顺序是正序的
      plugins: [
        // 打包后的代码,辅助函数统一从@babel/runtime里引入,可减少重复代码,但是默认只处理帮助函数
        // 需要安装生产依赖@babel/runtime
        ["@babel/plugin-transform-runtime", {
          // 这样配置可以处理polyfill,避免polyfill全局污染,但是没有target配置,所以polyfill代码会全部引入
          // 需安装生产依赖@babel/runtime-corejs3
          // "corejs": 3
        }]
      ]
    };
    

    .eslintrc.js

    // .slintrc.js
    module.exports = {
      // lint环境
      env: {
        es6: true,
        node: true,
      },
      // 扩展规则
      extends: ["airbnb-base"],
      // 解析器
      parser: "@babel/eslint-parser", // 配合babel使用
      parserOptions: {
        ecmaVersion: 12, //es12版本
        sourceType: "module", // default script
        ecmaFeatures: {
          jsx:true,
          impliedStrict: true,
        },
      },
      // 自定义规则 0关闭,1警告,2错误
      rules: {
      },
    };
    
    

    package.json

    // package.json
    {
      ...
      "scripts": {
        ...
        "babel": "babel src -d lib",
      },
      "devDependencies": {
        ...
        "@babel/cli": "^7.12.1",
        "@babel/core": "^7.12.3",
        "@babel/node": "^7.12.6", // 建议全局安装
        "@babel/plugin-transform-runtime": "^7.12.1",
        "@babel/preset-env": "^7.12.1",
        "@babel/preset-react": "^7.12.7",
        "@babel/preset-typescript": "^7.12.7",
      },
      "dependencies": {
        ...
        "@babel/runtime": "^7.12.5",
        "core-js": "^3.8.0",
        "regenerator-runtime": "^0.13.7"
      },
      // https://caniuse.com/ 可以查看各浏览器支持度
      "browserslist": [
        "> 1%", //全球超过1%人数使用的浏览器
        "last 2 versions",// 所有浏览器兼容到最近的两个版本
        "not ie <= 8"// ie版本不低于8
      ]
    }
    

    需要安装的依赖

    开发依赖

    1. @babel/corebabel核心库
    2. @babel/cli babel命令行
    3. @babel/preset-env babel预设环境,包括已经稳定实现的es6及以上语法插件,当然还有常用的预设@babel/preset-react@babel/preset-typescript
    4. @babel/plugin-transform-runtime 抽取babel辅助函数为公共runtime,减少重复代码
    5. @babel/node 转化es6语法为node支持的语法,推荐全局安装
    6. babel/eslint-parser 配合eslint使用,不然eslint识别不了超前的es语法

    生产依赖

    1. corejs@3 polyfill的代码,建议使用corejs 3.0版本
    2. regenerator-runtime 生成器语法的依赖
    3. @babel/runtime 配合@babel/plugin-transform-runtime使用

    参考

    • babel官网
    • eslint官网
    • can i use

    起源地下载网 » babel7配置

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元