首页 > 其他分享 >Vue | babel.config.js 配置详解

Vue | babel.config.js 配置详解

时间:2024-05-01 20:36:44浏览次数:23  
标签:Vue Babel js json env babel config

babel.config.js

 

1 概述

Babel 相当于一个中介,一边是用户,另一边是浏览器。这几年,JavaScript 发生了很大的变化,许多新特性在很多浏览器里都不支持。

Babel 的主要作用就是规避这些问题,可以确保 JavaScript 代码兼容所有的浏览器,比如 IE 11。


2 Babel 的工作原理

Babel 使用 AST 把不兼容的代码编译成 ES15 版本,因为大多数浏览器都支持这个版本的 JavaScript 代码。
2.1 如何设置?

在控制台运行如下命令:

npm install --save-dev @babel/core @babel/cli @babel/preset-env



应用程序的根目录会默认创建一个 babel.config.json 文件。Babel 将遍历 src 目录下的所有 JS 文件。

{
  "presets": [
    [
      "@babel/env",
      {
        "targets": {
          "edge": "17",
          "firefox": "60",
          "chrome": "67",
          "safari": "11.1"
        },
        "useBuiltIns": "usage",
        "corejs": "3.6.5"
      }
    ]
  ]
}`

 

把 babel.config.json 添加到 package.json 里。

"build": "./node_modules/.bin/babel src --out-dir build"



然后,执行如下命令:

npm run build



这时,在 build 文件夹里就生成了转换代码。
2.2 @babel/core @babel/cli @babel/preset-env 到底做了哪些事情

    @babel/core:Babel 的所有核心功能都在这里
    @babel/cli:提供了 CLI 工具,使我们能够运行 npm run build
    @babel/preset-env:提供预置功能

3 插件

Babel 使用插件来执行代码转换,插件其实就是用 JavaScript 所写的程序片段。比如@babel/plugin-change-Arrow-function ,它的代码实现如下:

// From this
const fn = () => 1;

// Converted to this
var fn = function fn() {
  return 1;
};

 

上面提到的 @babel/preset-env 本身包含了一组插件,可以处理手动设置插件带来的很多问题,大多数情况下能够智能处理代码。
Polyfill

Polyfill 是 JavaScript 代码片段,兼容原本不支持的旧版浏览器。Polyfill 模块包括core-js和一个自定义的重生器运行时,以模拟完整的ES2015 +环境。如果要使用 PolyFill 必须运行如下命令:

// Install via
npm install --save @babel/polyfill

// Add via
import "core-js/stable";
import "regenerator-runtime/runtime";

   

4 Babel 配置文件的优先级

从低到高依次为:

    babel.config.json
    babelrc.json
    @babel/cli

依照优先级,babel.config.json 会被 . babelrc 覆盖,依次类推。
5 Babel 有哪些值得注意的选项

以下面的配置为例:

{
    "presets":
    [
        [
            "@babel/env",
            {
                "targets":
                {
                    "edge": "17",
                    "firefox": "60",
                    "chrome": "67",
                    "safari": "11.1"
                },
                "useBuiltIns": "usage",
                "corejs": "3.6.5"
            }

        ]
    ],
}
 

    如果要缩减输出代码,需要增加选项 "minified": true

    如果要忽略某些文件,则添加 ignore: ["file or directory path"]

    只编译特定的文件或文件夹,则添加

    // For Files
    "only" : ["./src/some_file.js"],
    // For Directory
    "only" : ["./src"],

链接:https://blog.csdn.net/alexwei2009/article/details/125268933

标签:Vue,Babel,js,json,env,babel,config
From: https://www.cnblogs.com/emanlee/p/18006953

相关文章

  • Vue .gitignore
    Vue.js是一种流行的开源JavaScript框架,被广泛用于构建现代化的Web应用程序。Vue.js用于构建用于数据响应的单页面应用程序,但是在处理大型项目时可能会出现许多临时文件和配置文件,这些文件可以使用.gitignore文件从Git跟踪中排除。Vue.js有一个标准的.gitignore文件......
  • vue 项目构建之 jsconfig.json 作用
    目录   vue项目构建之jsconfig.json作用   VScode的配置vue项目构建之jsconfig.json作用   由于webpack别名配置好以后,如果想要在vscold中可以正确提示路径,就需要配置jsconfig.json文件:   再项目目录下创建jsconfig.json文件{ "compilerOptions":{   "base......
  • 启动vue项目时发生了什么
    简介最近在做vue项目时,遇到一些vuecli方面的报错,于是便想深入研究一下vuecli。这里先简单写一篇,如果有更细致的探究,再另作打算。执行npmrundev前提是你已经安装了node,并且附带了npm。执行npmrundev时,npm会自动搜索当前目录下的package.json,找到scripts配置项中的dev脚本......
  • Vue mockjs mock.js
    https://www.jianshu.com/p/0d6a0bdce55c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendationhttps://blog.csdn.net/cuclife/article/details/131119983        操作步骤           1)安装mockjs和axios:  ......
  • Vue .browserslistrc
    Vue .browserslistrc 在使用脚手架搭建项目时,会自动生成.browserslistrc文件,该文件只要是配置兼容浏览器对于部分配置参数做一些解释:">1%":代表着全球超过1%人使用的浏览器“last2versions”:表示所有浏览器兼容到最后两个版本“notie<=8”:表示IE浏览器版本大于8......
  • Vue .eslintignore
    Vue .eslintignore项目根目录如果没有 .eslintignore文件,需要手动添加即可 用法如下指定某文件夹包括里面的所有文件都忽略buildsrc/assets指定某文件夹里面的指定文件类型都忽略build/*.js指定某文件夹里面的指定文件忽略src/index.js指定某文件夹里的除......
  • Vue 生命周期
    https://www.bilibili.com/video/BV1ub4y1i78b?p=2 第五章什么是vue3的生命周期https://www.bilibili.com/video/BV1ua4y1u7N8/  Vue生命周期created,mounted        Created和mounted的区别Created:是在组件实例一旦创建完成的时候立即调......
  • Vue main.js
    Vue main.jsmain.js是项目的入口文件,项目中所有的页面都会加载main.jsmain.js配置定义:main.js是项目的入口文件,项目中所有的页面都会加载main.js。主要有三个作用: 1.实例化Vue。 2.放置项目中经常会用到的插件和CSS样式。3.存储全局变量。项目创建完毕,main.js中会有......
  • Vue App.vue
    Vue App.vueVue的App.vue文件是整个Vue项目中最核心的文件之一,它是所有组件的基础组件,也是整个Vue应用的入口文件。我们可以在 App.vue中定义一些全局的样式、组件、路由和状态管理等,从而方便其他组件的调用。App.vue内部包含三个主要部分:模板、逻辑代码和样式。其中......
  • 前端Vue 启动过程 启动流程 执行流程
    前端Vue执行流程Vue的执行流程一般来说,当启动vue程序时,系统会先调用main.js文件 在main.js中,创建了一个新的vue对象并将其挂载到App.vue中id为app的html组件中 在App.js中,引入<router-view/>标签来进行路由管理,系统会进入router文件夹中的index.js文件中来寻找路由i......