摘要:今天介紹怎么編譯的各種函數和語法。對于相關的匹配規則,除了匹配結尾的文件,還應該去除文件夾下的第三庫的文件發布前已經被處理好了。它需要在我們項目的入口文件中被引入,或者在中配置。個人網站原文鏈接系列教程二編譯
今天介紹webpack怎么編譯ES6的各種函數和語法。敲黑板:這是webpack4版本哦, 有一些不同于webpack3的地方。
>>> 本節課源碼
>>> 所有課程源碼
1. 了解babel說起編譯es6,就必須提一下babel和相關的技術生態:
babel-loader: 負責 es6 語法轉化
babel-preset-env: 包含 es6、7 等版本的語法轉化規則
babel-polyfill: es6 內置方法和函數轉化墊片
babel-plugin-transform-runtime: 避免 polyfill 污染全局變量
需要注意的是, babel-loader和babel-polyfill。前者負責語法轉化,比如:箭頭函數;后者負責內置方法和函數,比如:new Set()。
2. 安裝相關庫這次,我們的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中使用babelbabel的相關配置,推薦多帶帶寫在.babelrc文件中。下面,我給出這次的相關配置:
{ "presets": [ [ "env", { "targets": { "browsers": ["last 2 versions"] } } ] ], "plugins": ["transform-runtime"] }
在webpack配置文件中,關于babel的調用需要寫在module模塊中。對于相關的匹配規則,除了匹配js結尾的文件,還應該去除node_module/文件夾下的第三庫的文件(發布前已經被處理好了)。
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我們發現整個過程中并沒有使用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規范的老瀏覽器中看到效果了。
5. 相關資料polyfill 引入:https://www.babeljs.cn/docs/u...
babel-preset-env 配置:https://www.babeljs.cn/docs/p...
歡迎技術交流,引用請注明出處。
個人網站:Yuan Xin
原文鏈接:webpack4 系列教程(二): 編譯 ES6
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96469.html
摘要:全網最貼心系列教程和配套代碼歡迎關注個人技術博客。所以我花費了個多月整理了這份教程,一共分成節,每節都有講解,并且準備了配套代碼。奈何深感水平不夠,只有一腔熱情,所以直接開放了教程和源碼。 webpack-demos:全網最貼心 webpack 系列教程和配套代碼 歡迎關注個人技術博客:godbmw.com。每周 1 篇原創技術分享!開源教程(webpack、設計模式)、面試刷題(偏前...
摘要:課程地址全部課程地址立即進入課程源碼目錄截至按照知識點,目錄分成了個文件夾之后還會持續更新。個人網站原文鏈接系列教程前言 本文檔已經過時,最近內容請看:https://godbmw.com/passage/76。一共16節課程和代碼。謝謝支持。 1. 什么是webpack? 前端目前最主流的javascript打包工具,在它的幫助下,開發者可以輕松地實現加密代碼、多平臺兼容。而最重要的...
摘要:本身就是為了打包所設計,作為第一節,介紹怎么打包。檢驗規范支持支持。創建文件夾,其中和分別用和規范編寫。收尾打包后的文件會按照我們的配置放在目錄下,這時,需要創建一個文件,引用打包好的文件。個人網站原文鏈接系列教程一打包 webpack 本身就是為了打包js所設計,作為第一節,介紹怎么打包js。 1. 檢驗webpack規范支持 webpack支持es6, CommonJS, AMD。...
摘要:傳送門系列教程一初識系列教程二創建項目,打包第一個文件系列教程三自動生成項目中的文件系列教程四處理項目中的資源文件一系列教程五處理項目中的資源文件二系列教程六使用分割代碼系列教程七使用系列教程八使用審查代碼系列教程九開發環境和生產環境 在前端開發日益復雜的今天,我們需要一個工具來幫助我們管理項目資源,打包、編譯、預處理、后處理等等。webpack的出現無疑是前端開發者的福音,我的博文只...
摘要:然而,瀏覽器對這些高級語法的支持性并不是非常好。是一個編譯器,能夠讓我們放心的使用新一代語法。在中使用安裝修改,加入新的遇到文件就先用處理,表示排除文件夾中的文件。 1. 什么是Babel 如今 ES6 語法在開發中已經非常普及,甚至也有許多開發人員用上了 ES7 或 ES8 語法。然而,瀏覽器對這些高級語法的支持性并不是非常好。因此為了讓我們的新語法能在瀏覽器中都能順利運行,Babe...
閱讀 3834·2021-11-24 09:39
閱讀 3752·2021-11-22 12:07
閱讀 1105·2021-11-04 16:10
閱讀 798·2021-09-07 09:59
閱讀 1902·2019-08-30 15:55
閱讀 934·2019-08-30 15:54
閱讀 723·2019-08-29 14:06
閱讀 2473·2019-08-27 10:54