摘要:配置是一個編譯器,是前端開發中的一個利器。其中,插件是為了告訴只編譯批準的內容,相當于及最新版本。安裝用法將下面內容添加到文件中更多細節參考插件。
webpack - babel配置
babel是一個javascript編譯器,是前端開發中的一個利器。它突破了瀏覽器實現es標準的限制,使我們在開發中可以使用最新的javascript語法。
通過構建和babel,可以使用最新js語法進行開發,最后自動編譯成用于瀏覽器或node環境的代碼。
webpack中使用babel配合webpack使用babel前,需要首先使用npm init初始化一個項目,npm install -g webpack安裝webpack(全局安裝是為了在命令行使用webpack命令)。
安裝babel-loader, babel-core, babel-preset-env。
npm install --save-dev babel-loader babel-core babel-preset-env
其中,babel-preset-env插件是為了告訴babel只編譯批準的內容,相當于babel-preset-es2015, es2016, es2017及最新版本。通過它可以使用最新的js語法。
配置webpack.config.js
在webpack配置文件中配置bable-loader
module: { rules: [ { test: /.js$/, use: { loader: "babel-loader", options: { presets: [ ["env",{ targets: { browsers: ["> 1%", "last 2 versions"] } }] ] } }, exclude: "/node_modules/" } ] }
其中,exclude是定義不希望babel處理的文件。targets是presets的一些預設選項,這里表示將js用于瀏覽器,只確保占比大于1%的瀏覽器的特性,主流瀏覽器的最新兩個主版本。
更多與配置有關的信息,可以參考:
babel env preset設置,
browserlist預設置.
在命令行中運行相應webpack命令即可。
由于babel-preset配置選項較多,我們一般可以在根目錄下建立.babelrc文件,專門用來放置babel preset配置,這是一個json文件。可以將上述配置修改如下:
//.bablerc文件 { "presets": [ ["env",{ "targets": { "browsers": ["> 1%", "last 2 versions"] } }] ] } //原webpack.config.js文件 module: { rules: [ { test: /.js$/, use: { loader: "babel-loader" }, exclude: "/node_modules/" } ] }babel-polifill插件
在上面的babel配置中,babel只是將一些es6,es7-8的語法轉換成符合目標的js代碼,但是如果我們使用一些特性或方法,比如Generator, Set, 或者一些方法。babel并不能轉換為低版本瀏覽器識別的代碼。這時就需要babel-polifill。
簡單的說,polifill就是一個墊片,提供了一些低版本es標準對高級特性的實現。使用polifill的方法如下:
npm install --save babel-polifill
然后在應用入口引入polifill,要確保它在任何其他代碼/依賴聲明前被調用。
//CommonJS module require("babel-polyfill"); //es module import "babel-polifill";
在webpack.config.js中,將babel-polifill加入entry數組中:
entry: ["babel-polifill", "./app.js"]
相比于runtime-transform,polifill用于應用開發中。會添加相應變量到全局,所以會污染全局變量。
更多細節參考babel-polifill。
runtime-transform插件runtime transform也是一個插件,它與polifill有些類似,但它不污染全局變量,所以經常用于框架開發。
安裝:
npm install --save-dev babel-plugin-transform-runtime
npm install --save babel-runtime
用法:
將下面內容添加到.bablerc文件中
{ "plugins": ["transform-runtime"] }
更多細節參考bable-runtime-transform插件。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93954.html
摘要:建立項目首先,創建工程目錄現在我們已經創建了我們要開發應用程序的文件夾,接著需要添加一個文件。這里為了版本的一致性,我把里的版本號前面刪除了。為此,需要創建一個名為的文件,用來配置。 showImg(https://segmentfault.com/img/bVboiHi?w=1000&h=625); 想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質文章等著你! 在過去的一年和...
摘要:本質就是一個編譯器,通過將源代碼解析成抽象語法樹將源代碼的結果一系列轉換生成目標代碼的將目標代碼的轉換成代碼。項目構建三開發環境本地服務器搭建源碼下載地址參考資料入門阮一峰中文文檔中文網 注:以下教程均在 windows 環境實現,使用其他操作系統的同學實踐過程可能會有些出入。 ??在上一章 webpack 項目構建:(一)基本架構搭建 我們搭建了一個最基本的 webpack 項目,現...
摘要:三集成所需要的依賴和在或加載模塊時,對代碼進行預處理,語法轉化為語法。到目前位置,用于開發應用的環境已經配置好了。 本系列主要學習webpack的配置。webpack自己間接的用過不少次,但是自己配置卻沒多少次,所以特地寫寫文章,學習webpack的配置,有不恰當的地方,歡迎指正。這次配置 babel 。 若你對webpack的概念還不了解,先查看相應文檔webpack中文文檔 一、初...
前言 什么是webpack 本質上,webpack 是一個現代 JavaScript 應用程序的靜態模塊打包器(module bundler)。當 webpack 處理應用程序時,它會遞歸地構建一個依賴關系圖(dependency graph),其中包含應用程序需要的每個模塊,然后將所有這些模塊打包成一個或多個 bundle。 webpack 有哪些功能(代碼轉換 文件優化 代碼分割 模塊合并 ...
前言 什么是webpack 本質上,webpack 是一個現代 JavaScript 應用程序的靜態模塊打包器(module bundler)。當 webpack 處理應用程序時,它會遞歸地構建一個依賴關系圖(dependency graph),其中包含應用程序需要的每個模塊,然后將所有這些模塊打包成一個或多個 bundle。webpack 有哪些功能(代碼轉換 文件優化 代碼分割 模塊合并 自...
閱讀 2815·2021-10-13 09:48
閱讀 3776·2021-10-13 09:39
閱讀 3586·2021-09-22 16:04
閱讀 1816·2021-09-03 10:48
閱讀 837·2021-08-03 14:04
閱讀 2358·2019-08-29 15:18
閱讀 3400·2019-08-26 12:19
閱讀 2869·2019-08-26 12:08