成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

webpack4 系列教程(二): 編譯 ES6

graf / 1210人閱讀

摘要:今天介紹怎么編譯的各種函數(shù)和語法。對于相關(guān)的匹配規(guī)則,除了匹配結(jié)尾的文件,還應(yīng)該去除文件夾下的第三庫的文件發(fā)布前已經(jīng)被處理好了。它需要在我們項目的入口文件中被引入,或者在中配置。個人網(wǎng)站原文鏈接系列教程二編譯

今天介紹webpack怎么編譯ES6的各種函數(shù)和語法。敲黑板:這是webpack4版本哦, 有一些不同于webpack3的地方。

>>> 本節(jié)課源碼

>>> 所有課程源碼

1. 了解babel

說起編譯es6,就必須提一下babel和相關(guān)的技術(shù)生態(tài):

babel-loader: 負責 es6 語法轉(zhuǎn)化

babel-preset-env: 包含 es6、7 等版本的語法轉(zhuǎn)化規(guī)則

babel-polyfill: es6 內(nèi)置方法和函數(shù)轉(zhuǎn)化墊片

babel-plugin-transform-runtime: 避免 polyfill 污染全局變量

需要注意的是, babel-loaderbabel-polyfill。前者負責語法轉(zhuǎn)化,比如:箭頭函數(shù);后者負責內(nèi)置方法和函數(shù),比如:new Set()

2. 安裝相關(guān)庫

這次,我們的package.json文件配置如下:

{
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.7.0",
    "webpack": "^4.15.1"
  },
  "dependencies": {
    "babel-polyfill": "^6.26.0",
    "babel-runtime": "^6.26.0"
  }
}

>>> package.json 配置地址

3. webpack中使用babel
babel的相關(guān)配置,推薦多帶帶寫在.babelrc文件中。下面,我給出這次的相關(guān)配置:
{
  "presets": [
    [
      "env",
      {
        "targets": {
          "browsers": ["last 2 versions"]
        }
      }
    ]
  ],
  "plugins": ["transform-runtime"]
}

webpack配置文件中,關(guān)于babel的調(diào)用需要寫在module模塊中。對于相關(guān)的匹配規(guī)則,除了匹配js結(jié)尾的文件,還應(yīng)該去除node_module/文件夾下的第三庫的文件(發(fā)布前已經(jīng)被處理好了)。

module.exports = {
  entry: {
    app: "./app.js"
  },
  output: {
    filename: "bundle.js"
  },
  module: {
    rules: [
      {
        test: /.js$/,
        exclude: /(node_modules)/,
        use: {
          loader: "babel-loader"
        }
      }
    ]
  }
};

>>> .babelrc 地址

>>> 配置文件地址

4. 最后:babel-polyfill

我們發(fā)現(xiàn)整個過程中并沒有使用babel-polyfill它需要在我們項目的入口文件中被引入,或者在webpack.config.js中配置。這里我們采用第一種方法編寫app.js:

import "babel-polyfill";
let func = () => {};
const NUM = 45;
let arr = [1, 2, 4];
let arrB = arr.map(item => item * 2);

console.log(arrB.includes(8));
console.log("new Set(arrB) is ", new Set(arrB));

命令行中進行打包,然后編寫html文件引用打包后的文件即可在不支持es6規(guī)范的老瀏覽器中看到效果了。

5. 相關(guān)資料

polyfill 引入:https://www.babeljs.cn/docs/u...

babel-preset-env 配置:https://www.babeljs.cn/docs/p...

歡迎技術(shù)交流,引用請注明出處。
個人網(wǎng)站:Yuan Xin
原文鏈接:webpack4 系列教程(二): 編譯 ES6

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/96469.html

相關(guān)文章

  • webpack-demos:全網(wǎng)最貼心webpack系列教程和配套代碼

    摘要:全網(wǎng)最貼心系列教程和配套代碼歡迎關(guān)注個人技術(shù)博客。所以我花費了個多月整理了這份教程,一共分成節(jié),每節(jié)都有講解,并且準備了配套代碼。奈何深感水平不夠,只有一腔熱情,所以直接開放了教程和源碼。 webpack-demos:全網(wǎng)最貼心 webpack 系列教程和配套代碼 歡迎關(guān)注個人技術(shù)博客:godbmw.com。每周 1 篇原創(chuàng)技術(shù)分享!開源教程(webpack、設(shè)計模式)、面試刷題(偏前...

    LMou 評論0 收藏0
  • webpack4 系列教程: 前言

    摘要:課程地址全部課程地址立即進入課程源碼目錄截至按照知識點,目錄分成了個文件夾之后還會持續(xù)更新。個人網(wǎng)站原文鏈接系列教程前言 本文檔已經(jīng)過時,最近內(nèi)容請看:https://godbmw.com/passage/76。一共16節(jié)課程和代碼。謝謝支持。 1. 什么是webpack? 前端目前最主流的javascript打包工具,在它的幫助下,開發(fā)者可以輕松地實現(xiàn)加密代碼、多平臺兼容。而最重要的...

    DevWiki 評論0 收藏0
  • webpack4 系列教程(一): 打包JS

    摘要:本身就是為了打包所設(shè)計,作為第一節(jié),介紹怎么打包。檢驗規(guī)范支持支持。創(chuàng)建文件夾,其中和分別用和規(guī)范編寫。收尾打包后的文件會按照我們的配置放在目錄下,這時,需要創(chuàng)建一個文件,引用打包好的文件。個人網(wǎng)站原文鏈接系列教程一打包 webpack 本身就是為了打包js所設(shè)計,作為第一節(jié),介紹怎么打包js。 1. 檢驗webpack規(guī)范支持 webpack支持es6, CommonJS, AMD。...

    chanthuang 評論0 收藏0
  • webpack4系列教程(十):總結(jié)

    摘要:傳送門系列教程一初識系列教程二創(chuàng)建項目,打包第一個文件系列教程三自動生成項目中的文件系列教程四處理項目中的資源文件一系列教程五處理項目中的資源文件二系列教程六使用分割代碼系列教程七使用系列教程八使用審查代碼系列教程九開發(fā)環(huán)境和生產(chǎn)環(huán)境 在前端開發(fā)日益復(fù)雜的今天,我們需要一個工具來幫助我們管理項目資源,打包、編譯、預(yù)處理、后處理等等。webpack的出現(xiàn)無疑是前端開發(fā)者的福音,我的博文只...

    hqman 評論0 收藏0
  • webpack4系列教程(七):使用 babel-loader

    摘要:然而,瀏覽器對這些高級語法的支持性并不是非常好。是一個編譯器,能夠讓我們放心的使用新一代語法。在中使用安裝修改,加入新的遇到文件就先用處理,表示排除文件夾中的文件。 1. 什么是Babel 如今 ES6 語法在開發(fā)中已經(jīng)非常普及,甚至也有許多開發(fā)人員用上了 ES7 或 ES8 語法。然而,瀏覽器對這些高級語法的支持性并不是非常好。因此為了讓我們的新語法能在瀏覽器中都能順利運行,Babe...

    mingde 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<