欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue如何使用bable將es6轉(zhuǎn)譯為es5

 更新時間:2023年07月04日 11:51:37   作者:對的態(tài)度帶你走向?qū)Φ穆? 
這篇文章主要介紹了vue如何使用bable將es6轉(zhuǎn)譯為es5問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

為什么使用babel

ECMAScript 6(ES6)的發(fā)展速度非常之快,但現(xiàn)代瀏覽器對ES6新特性支持度不高,所以要想在瀏覽器中直接使用ES6的新特性就得借助別的工具來實現(xiàn)。

Babel是一個廣泛使用的轉(zhuǎn)碼器,babel可以將ES6代碼完美地轉(zhuǎn)換為ES5代碼,所以我們不用等到瀏覽器的支持就可以在項目中使用ES6的特性。

babel使用

1. 運行以下命令安裝所需的包(package)

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

2.在項目的根目錄下創(chuàng)建一個命名為 babel.config.json 的配置文件(需要 v7.8.0 或更高版本)

并將以下內(nèi)容復制到此文件中:

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

上述瀏覽器列表僅用于示例。請根據(jù)你所需要支持的瀏覽器進行調(diào)整。

參見 此處 以了解 @babel/preset-env 可接受哪些參數(shù)。

如果你使用的是 Babel 的舊版本,則文件名為 babel.config.js。

const presets = [
  [
    "@babel/preset-env",
    {
      targets: {
        edge: "17",
        firefox: "60",
        chrome: "67",
        safari: "11.1",
      },
      useBuiltIns: "usage",
      corejs: "3.6.4",
    },
  ],
];
module.exports = { presets };

3.插件和預設(preset)

代碼轉(zhuǎn)換功能以插件的形式出現(xiàn),插件是小型的 JavaScript 程序,用于指導 Babel 如何對代碼進行轉(zhuǎn)換。

你甚至可以編寫自己的插件將你所需要的任何代碼轉(zhuǎn)換功能應用到你的代碼上。

例如將 ES2015+ 語法轉(zhuǎn)換為 ES5 語法,我們可以使用諸如 @babel/plugin-transform-arrow-functions 之類的官方插件:

npm install --save-dev @babel/plugin-transform-arrow-functions

現(xiàn)在,我們代碼中的所有箭頭函數(shù)(arrow functions)都將被轉(zhuǎn)換為 ES5 兼容的函數(shù)表達式了:

const fn = () => 1;
// converted to
var fn = function fn() {
  return 1;
};

這是個好的開始!但是我們的代碼中仍然殘留了其他 ES2015+ 的特性,我們希望對它們也進行轉(zhuǎn)換。我們不需要一個接一個地添加所有需要的插件,我們可以使用一個 “preset” (即一組預先設定的插件)。

就像插件一樣,你也可以根據(jù)自己所需要的插件組合創(chuàng)建一個自己的 preset 并將其分享出去。

J對于當前的用例而言,我們可以使用一個名稱為 env 的 preset。

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

如果不進行任何配置,上述 preset 所包含的插件將支持所有最新的 JavaScript (ES2015、ES2016 等)特性。但是 preset 也是支持參數(shù)的。

我們來看看另一種傳遞參數(shù)的方法:配置文件,而不是通過終端控制臺同時傳遞 cli 和 preset 的參數(shù)。

配置

根據(jù)你的需要,可以通過幾種不同的方式來使用配置文件。另外,請務必閱讀我們關于如何 配置 Babel 的深入指南以了解更多信息。

其實vue 已經(jīng)引入了babel, 檢查package.json是否有依賴 @vue/cli-plugin-babel,只需要配置babel.config.js 和 package.json里添加下面代碼

package.json

"browserslist": [
    "> 1%",
    "last 2 versions",
    "not dead",
    "Chrome 40.0", // 兼容低版本谷歌
    "ie >= 9"  // 兼容ie 9
  ]

.babel.config.js

module.exports = {
  presets: [
    // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
    '@vue/cli-plugin-babel/preset'
  ],
  'env': {
    'development': {
      // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
      // This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
      'plugins': ['dynamic-import-node']
    }
  }
}

實踐

1.在main.js中引入 ,一定要在最頂部引入

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

2.babel.config.js 配置

module.exports = {
  presets: [
    // '@vue/cli-plugin-babel/preset',
    [
      // '@babel/preset-env',
      '@vue/app',
      {
        modules: 'commonjs',
        useBuiltIns: 'entry',//entry usage
        corejs: "3",
        debug:true
      }
    ]
  ],
  sourceType: 'unambiguous'
  // "plugins": [
  //   [
  //     "@babel/plugin-transform-runtime",
  //     {
  //       "corejs": 3 // 指定 runtime-corejs 的版本,目前有 2 3 兩個版本
  //     }
  //   ]
  // ]
};

ie中遇到的問題

1.因為webstorm格式化會在最后一個屬性后面加一個,導致ie不兼容。

用eslint 格式化配置將最后一個逗號去掉。

在.eslintrc.js中加入

module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: ["plugin:vue/essential", "eslint:recommended", "@vue/prettier"],
  parserOptions: {
    parser: "babel-eslint",
  },
  rules: {
    "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
    "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
    'prettier/prettier': [
      process.env.NODE_ENV === 'production' ? 'warn' : 'off',
      {
        singleQuote: true,
        semi: false,
      },
    ],
    "comma-dangle": [1, "never"] // 這里就是格式化最后一個逗號
  },
};

2.因為項目中用到了sm4等加密方式,babel并沒有將依賴轉(zhuǎn)義為es5。

所以我們還要再加一個配置,讓babel轉(zhuǎn)譯我們的依賴。

在vue.config.js中加入配置項

transpileDependencies: [
    'sm-crypto',
    'bpmn-js',
    'bpmn-js-properties-panel',
    'diagram-js',
    'bpmn-moddle',
    '@bpmn-io',
    '@bpmn-io/element-templates-validator'
  ],

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 使用webpack搭建vue項目及注意事項

    使用webpack搭建vue項目及注意事項

    這篇文章主要介紹了使用webpack搭建vue項目的方法,本文以開發(fā)環(huán)境為例,通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • vue使用Google地圖的實現(xiàn)示例代碼

    vue使用Google地圖的實現(xiàn)示例代碼

    這篇文章主要介紹了vue使用Google地圖的實現(xiàn)示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • 解決使用Vue.js顯示數(shù)據(jù)的時,頁面閃現(xiàn)原始代碼的問題

    解決使用Vue.js顯示數(shù)據(jù)的時,頁面閃現(xiàn)原始代碼的問題

    下面小編就為大家分享一篇解決使用Vue.js顯示數(shù)據(jù)的時,頁面閃現(xiàn)原始代碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Vue實現(xiàn)PC端靠邊懸浮球的代碼

    Vue實現(xiàn)PC端靠邊懸浮球的代碼

    這篇文章主要介紹了Vue實現(xiàn)靠邊懸浮球(PC端)效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • vue 實現(xiàn)移動端鍵盤搜索事件監(jiān)聽

    vue 實現(xiàn)移動端鍵盤搜索事件監(jiān)聽

    今天小編就為大家分享一篇vue 實現(xiàn)移動端鍵盤搜索事件監(jiān)聽,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 使用vite創(chuàng)建vue3之vite.config.js的配置方式

    使用vite創(chuàng)建vue3之vite.config.js的配置方式

    這篇文章主要介紹了使用vite創(chuàng)建vue3之vite.config.js的配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • el-table渲染慢卡頓問題最優(yōu)解決方案

    el-table渲染慢卡頓問題最優(yōu)解決方案

    本文主要介紹了el-table渲染慢卡頓問題最優(yōu)解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • vue3中v-model的用法詳解

    vue3中v-model的用法詳解

    vue 提供了很多自定義指令,大大方便了我們的開發(fā),其中最常用的也就是 v-model,他可以在組件上使用以實現(xiàn)雙向綁定。它可以綁定多種數(shù)據(jù)結(jié)構, 今天總結(jié)一下用法
    2023-04-04
  • Vue-resource安裝過程及使用方法解析

    Vue-resource安裝過程及使用方法解析

    這篇文章主要介紹了Vue-resource安裝過程及使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Vue中的作用域CSS和CSS模塊的區(qū)別

    Vue中的作用域CSS和CSS模塊的區(qū)別

    這篇文章主要介紹了Vue中的作用域CSS和CSS模塊的區(qū)別,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10

最新評論