webpack之babel講解
前言:
本文演示了
- 如何安裝配置babel基本命令
- 如何安裝配置babel外掛
- 如何配置.babelrc檔案
- 如何安裝配置babel預設presets
正文:
babel 是一個強大的js編譯器,功能包括不限於:
- es6編譯成es5語法;
- 編譯jsx語法
安裝配置babel
首先,建立專案目錄,初始化npm
$ mkdir babel
$ cd babel
$ npm init
$ mkdir src
$ cd src
$ touch app.js
$ cd ../
以上命令執行完之後的專案目錄:
安裝babel-cli
$ npm i -D babel-cli
編輯app.js
現在我們嘗試著用babel編譯app.js
$ babel src/app.js
此時,命令列會提示找不到相關命令:
原因是我們的babel並沒有全域性安裝(全域性安裝命令:npm i -g babel)。
當前babel安裝目錄: node_modules/.bin/babel
所以我們在這裡應該執行命令:
$ node_modules/.bin/babel src/app.js
或者,配置一下package.json檔案,
然後,執行命令:
$ npm run babel
命令執行完畢,發現編譯完成的app.js並沒有任何變化。這是因為babel功能太強大,它能做的工作很多,在你告訴它要幹什麼之前,它不會進行任何工作。babel的工作是基於外掛的,沒有外掛babel將一無是處。
安裝配置babel外掛
首先安裝我們的外掛
npm i -D babel-plugin-transform-es2015-arrow-functions babel-plugin-transform-es2015-classes
配置我們的paskage.json檔案:
執行命令:npm run babel 編譯成功!
如果我們要使用的外掛非常多,那plugins=後面的內容將會非常長。
在專案中新建 .babelrc 檔案:
$ touch .babelrc
編輯.babelrc檔案:
編輯package.json檔案:
執行命令: npm run babel 編譯成功!
那是不是我們每次使用一種語法就需要在.babelrc的plugins對應的陣列中增加一項呢?答案當然是不用這麼麻煩!
這裡就扯出了 babel預設。
presets
Presets 是可共享的 .babelrc
配置或者只是一個 babel 外掛的陣列。
babel-preset-env 預設 可以編譯es2015、es2016、es2017程式碼為es5程式碼
$ npm i -D babel-preset-env
配置 .babelrc 檔案:
執行 npm run babel ,編譯成功!
這裡編譯成功後並沒有生成編譯後的新的js檔案,改一下package.json配置即可:
需要注意,這裡需要手動的建立dist目錄,否則執行 npm run babel的時候會報錯找不到相關路徑。