• webpack(3) babel相关


    babel

    链接地址

    在index.js中写入js6的语法如

    let fn = (){
        console.log('this is es6')
    }
    

    执行npm run build

    在打包出来的js文件中搜索fn会看到如下片段结果mode状态为development

    fn = ()=>{
        console.log("this is es6")
    }
    fn()
    
    
    //# sourceURL=webpack:///./src/index.js?")
    

    可以看到箭头函数依旧以箭头函数的方式输出,而没有以es5的方式输出
    接下来安装babel-loader

    npm install -D babel-loader @babel/core @babel/preset-env webpack
    

    在module rules中进行配置

    {
        test: /.js$/,
            use: [
                {
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env']
                    },
    
                }
            ]
    }
    

    再次打包,执行后在js文件中查看fn可以发现如下代码

    fn = function fn() {
      console.log("this is es6");
    };
    
    fn();
    
    //# sourceURL=webpack:///./src/index.js?")
    

    可见此时的箭头函数已经被转化为es5的语法了

    在src下将要打包的js文件中写如下高级语法

    class Test{
        a = 11
    }
    

    打包时发现报错并且出现以下提示

    Add @babel/plugin-proposal-class-properties (https://git.io/vb4SL) to the 'plugins' section of your Babel config to enable transformation.
    

    也就是下载安装

    npm i @babel/plugin-proposal-class-properties -D
    

    接着重新进行配置

    {
            test: /.js$/,
            use: [
                {
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env'] , 
                        plugins:[
                            '@babel/plugin-proposal-class-properties'
                        ]  
                    },
    
                }
            ]
    }
    ``
  • 相关阅读:
    浏览器环境下JavaScript脚本加载与执行探析之代码执行顺序
    DOM扩展:DOM API的进一步增强[总结篇-下]
    DOM扩展:DOM API的进一步增强[总结篇-上]
    Network 第九篇
    Network 第八篇 – 动态路由-OSPF
    Network 第七篇
    Network 第六篇
    Network 第五篇
    Network 第四篇
    Network 第三篇
  • 原文地址:https://www.cnblogs.com/axu1997/p/12805278.html
Copyright © 2020-2023  润新知