国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

Vue+webpack+Element 兼容問(wèn)題總結(jié)

sumory / 2964人閱讀

摘要:項(xiàng)目中用到了和官方文檔中給出明確范圍不支持及以下版本,因?yàn)槭褂昧藷o(wú)法模擬的特性。但它支持所有兼容的瀏覽器。詞法分析階段把字符串形式的代碼轉(zhuǎn)換為令牌流。語(yǔ)法分析階段會(huì)把一個(gè)令牌流轉(zhuǎn)換成的形式方便后續(xù)操作。利用我們配置好的把生成的轉(zhuǎn)變?yōu)樾碌摹?/p>

項(xiàng)目中用到了Vue.js和Elenment-UI
Vue官方文檔中給出明確范圍:Vue 不支持 IE8 及以下版本,因?yàn)?Vue 使用了 IE8 無(wú)法模擬的 ECMAScript 5 特性。但它支持所有兼容 ECMAScript 5 的瀏覽器。
而且Element-UI支持IE10+及大多數(shù)瀏覽器。由此要用到Babel,主要用于將ECMAScript 2015+代碼轉(zhuǎn)換為舊瀏覽器或環(huán)境中向后兼容的JavaScript版本。在此之前,需要先搞清楚IE6~11是否支持es5:

IE6~IE8:不支持es5的所有語(yǔ)法;

IE9:支持除ECMAScript 5 Strict Mode外的es5語(yǔ)法;

IE10:支持es5的所有語(yǔ)法;

IE?11:支持es5所有語(yǔ)法及es6中const和Typed Arrays新語(yǔ)法

babel可以把同種語(yǔ)言的高版本規(guī)則翻譯成低版本規(guī)則,其轉(zhuǎn)譯過(guò)程也分為三個(gè)階段:parsing、transforming、generating。(1)解析步驟接收代碼并輸出 AST(抽象語(yǔ)法樹(shù)),這其中又包含兩個(gè)階段詞法分析和語(yǔ)法分析。詞法分析階段把字符串形式的代碼轉(zhuǎn)換為令牌(tokens)流。語(yǔ)法分析階段會(huì)把一個(gè)令牌流轉(zhuǎn)換成 AST 的形式,方便后續(xù)操作。(2) 利用我們配置好的plugins/presets把Parser生成的AST轉(zhuǎn)變?yōu)樾碌腁ST。(3)代碼生成步驟過(guò)程是深度優(yōu)先遍歷整個(gè) AST,然后構(gòu)建可以表示轉(zhuǎn)換后代碼的字符串。

下面總結(jié)Babel的使用:
1、由于項(xiàng)目使用了webpack打包工具,安裝

npm install --save-dev babel-loader babel-core

2、在webpack.config.js中設(shè)置

module: {
   rules: [
     {
       test: /.js$/,
       loader: "babel-loader",
       include: [
         resolve("src"),
         resolve("test"),
       ],
     },?
   ]
}

可以根據(jù)webpack中Module的選項(xiàng)來(lái)配置相應(yīng)內(nèi)容
3、在根目錄下創(chuàng)建.babelrc文件來(lái)添加插件,文件添加成功后,可以開(kāi)始配置內(nèi)容
首先,可以使用evn預(yù)設(shè)置,它支持ES2015+的轉(zhuǎn)換

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

.babelrc文件中

{
"presets":["evn"]

}

如果沒(méi)有任何配置選項(xiàng),babel-preset-env的行為與babel-preset-latest(或babel-preset-es2015、babel-preset-es2016和babel-preset-es2017一起)完全相同。
當(dāng)然,還有可選的選項(xiàng)可以配置,例如:

    [
      "env",
      {
        "modules": false,
        "targets": {
          "browsers": ["> 1%", "last 2 versions"]
        }
      }
      "stage-2"
    ],

evn中設(shè)置項(xiàng)所代表的意思:

targets.node 支持到哪個(gè)版本的

node targets.browsers 支持到哪個(gè)版本的瀏覽器

loose 啟動(dòng)寬松模式,配合 webpack 的 loader 使用

modules 使用何種模塊加載機(jī)制

debug 開(kāi)啟調(diào)試模式

include 包含哪些文件

exclude 排除哪些文件

useBuiltIns 是否對(duì) babel-polyfill 進(jìn)行分解,只引入所需的部分

targets.browsers是參考browserslist https://github.com/browsersli... 設(shè)置瀏覽器條件。
設(shè)置了完成后,還需要用babel-polyfill來(lái)實(shí)現(xiàn)瀏覽器不能支持的原生代碼,在瀏覽器引入了相應(yīng)的polyfill后,可以用新的內(nèi)置對(duì)象比如 Promise 或者 WeakMap, 靜態(tài)方法比如 Array.from 或者 Object.assign, 實(shí)例方法比如 Array.prototype.includes。但是因?yàn)閎abel-polyfill是在原型鏈上直接添加方法,會(huì)污染全局變量,項(xiàng)目打包以后體積增大。

npm install --save babel-polyfill

若在應(yīng)用程序的入口頂點(diǎn)引入,則

require("babel-polyfill")


如果在應(yīng)用程序的入口點(diǎn)使用ES6的導(dǎo)入語(yǔ)法,則應(yīng)該在入口點(diǎn)的頂部導(dǎo)入polyfill,以確保首先加載polyfills

import("babel-polyfill")

;
如果通過(guò)webpack.config.js,在入口處添加:

module.exports = {   entry: ["babel-polyfill", "./app/js"] };

為了不污染全局對(duì)象和內(nèi)置的對(duì)象原型,可以用babel-plugin-transform-runtime,在.babelrc文件中

"plugins": [
    [
      "transform-runtime",
      {
        "helpers": false,
        "polyfill": true,
        "moduleName": "babel-runtime"
      }
    ],
  ]

插件應(yīng)用于babel的轉(zhuǎn)譯過(guò)程,尤其是第二個(gè)階段transforming,如果這個(gè)階段不使用任何插件,那么babel會(huì)原樣輸出代碼。
如果同時(shí)添加了plugins和presets,注意:插件會(huì)在預(yù)設(shè)項(xiàng)之前運(yùn)行;插件按第一個(gè)到最后一個(gè)正序執(zhí)行;預(yù)設(shè)中設(shè)置從最后一個(gè)到第一個(gè)逆序執(zhí)行,設(shè)置時(shí)注意執(zhí)行順序。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/52854.html

相關(guān)文章

  • Vue+webpack+Element 兼容問(wèn)題總結(jié)

    摘要:項(xiàng)目中用到了和官方文檔中給出明確范圍不支持及以下版本,因?yàn)槭褂昧藷o(wú)法模擬的特性。但它支持所有兼容的瀏覽器。詞法分析階段把字符串形式的代碼轉(zhuǎn)換為令牌流。語(yǔ)法分析階段會(huì)把一個(gè)令牌流轉(zhuǎn)換成的形式方便后續(xù)操作。利用我們配置好的把生成的轉(zhuǎn)變?yōu)樾碌摹? 項(xiàng)目中用到了Vue.js和Elenment-UIVue官方文檔中給出明確范圍:Vue 不支持 IE8 及以下版本,因?yàn)?Vue 使用了 IE8 無(wú)法...

    fxp 評(píng)論0 收藏0
  • ElementUI的構(gòu)建流程

    摘要:下面一步步拆解上述流程。切換至分支檢測(cè)本地和暫存區(qū)是否還有未提交的文件檢測(cè)本地分支是否有誤檢測(cè)本地分支是否落后遠(yuǎn)程分支發(fā)布發(fā)布檢測(cè)到在分支上沒(méi)有沖突后,立即執(zhí)行。 背景 最近一直在著手做一個(gè)與業(yè)務(wù)強(qiáng)相關(guān)的組件庫(kù),一直在思考要從哪里下手,怎么來(lái)設(shè)計(jì)這個(gè)組件庫(kù),因?yàn)闃I(yè)務(wù)上一直在使用ElementUI(以下簡(jiǎn)稱(chēng)Element),于是想?yún)⒖剂艘幌翬lement組件庫(kù)的設(shè)計(jì),看看Element構(gòu)...

    wudengzan 評(píng)論0 收藏0
  • 前端最實(shí)用書(shū)簽(持續(xù)更新)

    摘要:前言一直混跡社區(qū)突然發(fā)現(xiàn)自己收藏了不少好文但是管理起來(lái)有點(diǎn)混亂所以將前端主流技術(shù)做了一個(gè)書(shū)簽整理不求最多最全但求最實(shí)用。 前言 一直混跡社區(qū),突然發(fā)現(xiàn)自己收藏了不少好文但是管理起來(lái)有點(diǎn)混亂; 所以將前端主流技術(shù)做了一個(gè)書(shū)簽整理,不求最多最全,但求最實(shí)用。 書(shū)簽源碼 書(shū)簽導(dǎo)入瀏覽器效果截圖showImg(https://segmentfault.com/img/bVbg41b?w=107...

    sshe 評(píng)論0 收藏0
  • Vue-cli3 簡(jiǎn)qian易yi教程

    摘要:原文地址對(duì)于沒(méi)有了解過(guò)的童鞋,建議先去看看官方的教程傳送門(mén)新版本的新特性插件使用的插件,可以很快的搭建一個(gè)項(xiàng)目的結(jié)構(gòu)。使用時(shí)直接引入即可。的界面讓管理項(xiàng)目變得更加簡(jiǎn)單。如遷移過(guò)程中有任何疑問(wèn),可以留言一起探討。 原文地址 對(duì)于沒(méi)有了解過(guò) vue-cli3 的童鞋,建議先去看看官方的教程: 傳送門(mén) 新版本的新特性 1. 插件 使用 cli 的插件,可以很快的搭建一個(gè)項(xiàng)目的結(jié)構(gòu)。如 ax...

    jemygraw 評(píng)論0 收藏0
  • 手摸手,帶你用vue擼后臺(tái) 系列五(v4.0新版本)

    摘要:同時(shí)增加了單元測(cè)試,使用了,增加了可視化配置權(quán)限,增加了自定義布局等等,優(yōu)化了原先的權(quán)限方案,支持不刷新頁(yè)面更新路由等等功能。雖然它的初衷是為了單元測(cè)試的,但正好滿(mǎn)足了我們的需求。它會(huì)重寫(xiě)瀏覽器的對(duì)象,從而才能攔截所有請(qǐng)求,代理到本地。 前言 vue-element-admin 從 2017.04.17提交第一個(gè) commit 以來(lái),維護(hù)至今已經(jīng)有兩年多的時(shí)間了了,發(fā)布了四十多個(gè)版本,...

    MonoLog 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<