• bable 在vue、reactd的意义 Jim


    不管在vu还是react中都需要bable编辑器

    官网 https://babel.docschina.org/docs/en/config-files/#project-wide-configuration

    在执行 npm/yarn run build 时bable会对代码进行编译

    一、Babel 是什么?

    Babel 是一个 JavaScript 编译器
    babel是一个工具链,用于将ES6+语法转换为当前版本浏览器等环境兼容的javascript代码。babel目前已经支持了最新版本的javascript语法,对于目前尚未被浏览器支持的语法,可以通过babel插件支持。
    // Babel 输入: ES2015 箭头函数
    [1, 2, 3].map(n => n + 1);
    
    // Babel 输出: ES5 语法实现的同等功能
    [1, 2, 3].map(function(n) {
      return n + 1;
    });

    二、配置文件

    Babel有两种并行的配置文件的方式,可以一起使用,也可以单独使用。
    
    项目范围的配置
    文件相关配置
    
    .babelrc(和.babelrc.js)文件
    package.json中"babel"关键字的部分
     
    babel-plugin-import 是一款 babel 插件,它会在编译过程中将 import 的写法自动转换为按需引入的方式。
    bable.config.js中配置如下:
    plugins.push(['import', {
        'libraryName': 'ant-design-vue', //本人使用的antd的库,如果你是用的Vant或elemnt直接替换即可
        'libraryDirectory': 'es',
        'style': true // `style: true` 会加载 less 文件
    }])
    
    

    打包时会自动转为 import {TreeSelect} from 'ant-design-vue'

    
    
    1. 项目范围的配置
    根目录创建 babel.config.js 文件。babel.config.js 的官方文档在这里 https://babel.docschina.org/docs/en/config-files/#project-wide-configuration
    相关配置如下:一下是本人项目中配置根据需求而定
    const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV)
    
    const plugins = []
    if (IS_PROD) {
        // 去除日志的插件,在build时消除console.log
        plugins.push('transform-remove-console')
    }
    
    // lazy load ant-design-vue
    // if your use import on Demand, Use this code
    plugins.push(['import', {
        'libraryName': 'ant-design-vue',
        'libraryDirectory': 'es',
        'style': true // `style: true` 会加载 less 文件
    }])
    
    module.exports = {
        presets: [
            '@vue/cli-plugin-babel/preset',
            [
                '@babel/preset-env',
                {
                    'useBuiltIns': 'entry',
                    'corejs': 3
                }
            ]
        ],
        plugins
    }
    
    

    plugins该属性是告诉babel要使用那些插件,这些插件可以控制如何转换代码。
    presets属性告诉Babel要转换的源码使用了哪些新的语法特性,presets是一组Plugins的集合。官方提供以下的规则集,你可以根据需要安装。

    # ES2015转码规则
    $ npm install --save-dev babel-preset-es2015
     
    # react转码规则
    $ npm install --save-dev babel-preset-react
     
    # ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个
    $ npm install --save-dev babel-preset-stage-0
    $ npm install --save-dev babel-preset-stage-1
    $ npm install --save-dev babel-preset-stage-2
    $ npm install --save-dev babel-preset-stage-3
  • 相关阅读:
    Flexbox兼容性
    响应式布局(Responsive Layout)/流式布局(Fluid Layout)/自适应布局(Adaptive)
    Flex布局之box-flex
    Flex布局(伸缩盒布局)
    input美化问题
    用纯css改变下拉列表select框的默认样式
    超越icon font
    CSS居中之美
    php中yaf框架的服务器配置
    MySQL优化
  • 原文地址:https://www.cnblogs.com/huoshengmiao/p/15743593.html
Copyright © 2020-2023  润新知