• 浅析babel


    babel是目前es6转es5的主流工具,有了babel我们可以在node端、浏览器端使用es6的语法;

    在不同环境中使用babel

      日常开发工作中,常常会在命令行模式下使用babel,或者在构建工具中使用babel

      1.项目中使用babel,不借助构建工具  [局部安装cli]

        这里不使用全局安装babel-cli,原因:不能在各个工程中使用不同版本的babel

                第一步: 在项目根目录下创建package.json

        第二步: 局部安装babel-cli

    sudo npm install babel-cli --save-dev

        第三步: 局部安装转码规则 以及 配置文件

    sudo npm install babel-preset-es2015 --save-dev    

        在工程根目录下创建.babelrc文件,并在文件中配置参数

     {
        "presets": [
          "es2015", //配置安装的转码规则 es2015
          "react",
          "stage-2"
        ],
        "plugins": []
      }

        第四步: 在package.json文件中修改配置  以及 执行命令

    {
      // ...
      "devDependencies": {
        "babel-cli": "^6.0.0"
      },
      "scripts": {
        "build": "babel src -d dest" //-d表示转码整个文件夹
      },
    }

        在项目根目录下执行  npm run bulid 即执行转码命令 参见 npm run 

    npm run bulid

       2.命令行中使用babel  [全局安装cli]

        如果全局安装babel命令行 babel-cli,在项目工程中就不需要使用配置package.json文件并执行npm run命令

        全局安装babel-cli就可以在项目工程中直接使用babel命令

    //第一步: 全局安装babel-cli 
    sudo npm install babel-cli -g 
    
    //第二步: 在项目工程中局部安装转码规则 以及 配置.babelrc文件
    sudo npm install babel-preset-es2015 --save-dev
    
    在项目工程根目录下创建一个.babelrc文件,并配置规则,与局部安装配置相同
    
    //第三步: 在项目工程下使用babel命令
    babel src -d dest 

      3.构建工具中使用babel插件(以gulp为例)

        在构建工具grunt、gulp中使用babel的方法基本相同,这里讲解gulp中的使用;首先要安装gulp封装好的babel编译器 gulp-babel 以及 转码规则 babel-preset-es2015;

    sudo npm install gulp-babel babel-preset-es2015

        安装好babel编译器和转码规则后,创建任务;

        可以参考gulp-babel文档,具体如下:

    const gulp = require('gulp');
    const babel = require('gulp-babel');
     
    gulp.task('default', () => {
        return gulp.src('src/app.js')
            .pipe(babel({
                presets: ['es2015']
            }))
            .pipe(gulp.dest('dist'));
    });

    babel5 && babel6差异

      

     (未完待续)

    参考:

    [1] babel入门教程

    [2] babel5升级到babel6总结

  • 相关阅读:
    [BZOJ2809][Apio2012]dispatching
    [BZOJ4584][Apio2016]赛艇
    [BZOJ3206][Apio2013]道路费用
    [codeforces551E]GukiZ and GukiZiana
    [BZOJ3809]Gty的二逼妹子序列
    [BZOJ3289]Mato的文件管理
    [BZOJ3052][UOJ#58][WC2013]糖果公园
    [SPOJ10707]Count on a tree II
    [BZOJ1086][SCOI2005]王室联邦
    python小知识
  • 原文地址:https://www.cnblogs.com/RocketV2/p/6484024.html
Copyright © 2020-2023  润新知