美文网首页
webpack4个人学习详细笔记(三)--转化es6语法

webpack4个人学习详细笔记(三)--转化es6语法

作者: gem_Y | 来源:发表于2020-03-14 20:45 被阅读0次

    转化ES6及更高级语法

    https://www.babeljs.cn/setup#installation

    //  babel 是一个 JavaScript 编译器 ,把高级的js语法转为低级的语法
    //                         核心包           能转换所有的 es **相关的语法        
    yarn add babel-loader @babel/core @babel/preset-env -D
    
      module: {
        rules: [
          {
            test: /\.js$/,
            use: {
              loader: 'babel-loader',
              options: { // 用babel-loader,需要把es6-->es5
                presets: [ // 插件库
                  '@babel/preset-env'
                ],
                exclude: path.resolve(__dirname, 'node_modules'),
              }
            }
          },
        ]
      }
    

    处理其他更高级的语法,如

    class A { //等于 new A() a = 1
      a = 1
    }
    let a = new A()
    console.log(a.a)
    
    yarn add @babel/plugin-proposal-class-properties -D
    

    import()....

    yarn add @babel/plugin-syntax-dynamic-import -D
    
    {
      "plugins": ["@babel/plugin-syntax-dynamic-import"]
    }
    

    处理js语法及校验

    https://babeljs.io/docs/en/babel-plugin-transform-runtime#docsNav
    内置的API,需要帮助加代码

    function * gen(params) {
      yield 1;
    }
    console.log(gen().next())
    
    yarn add @babel/plugin-transform-runtime -D // 开发环境
    yarn add  @babel/runtime   // production
    
      module: {
        rules: [
          {
            test: /\.js$/,
            use: {
              loader: 'babel-loader',
              options: {
                presets: [
                  '@babel/preset-env'
                ],
                plugins: [
                  '@babel/plugin-proposal-class-properties',
                  "@babel/plugin-transform-runtime"
                ],
                include: path.resolve(__dirname, 'src'),
                exclude: /node_modules/,
              }
            }
          }
        ]
      }
    

    处理更高级的语法

    console.log('includes语法', 'aaa'.includes('b'))
    
    yarn add @babel/polyfill
    
    require ('@babel/polyfill')
    console.log('includes语法', 'aaa'.includes('b'))
    

    js校验

    https://eslint.bootcss.com/docs/user-guide/getting-started

    yarn add eslint eslint-loader -D
    

    获取配置文件.eslintrc.json 放入目录中:https://eslint.org/demo

      module: {
        rules: [
          {
            enforce: 'pre',  // 强制先执行  参数:默认normal,  pre/post
            test: /\.js$/,
            use: {
              loader: 'eslint-loader',
              options: {
                fix: true,
              },
              exclude: /node_modules/
            }
          }
       ]
    }
    

    补充

    yarn add babel-eslint babel-jest -D
    

    相关文章

      网友评论

          本文标题:webpack4个人学习详细笔记(三)--转化es6语法

          本文链接:https://www.haomeiwen.com/subject/iuanshtx.html