最近在學習es6語法,故有了從零開始搭建es6環境的想法。下面第一部分是單純的es6環境配置,第二部分是基於webpack環境的工程配置
"devdependencies":
(1)babel-cli
: 用於命令列轉碼
(2)babel-preset-env
:將基於你的實際瀏覽器及執行環境,自動的確定babel外掛程式及polyfills,轉譯es2015及此版本以上的語言
(3)babel-polyfill
: babel支援es6語法部分的編譯,對於新增的類還需安裝額外的polyfill
(4)babel-preset-stage-0
:為了支援async/await,這個是es7的語法
(5)babel-plugin-transform-runtime
:在轉換 es2015 語法為 ecmascript 5 的語法時,babel 會需要一些輔助函式,例如_extend
。babel 缺省會將這些輔助函式內聯到每乙個 js 檔案裡,這樣檔案多的時候,專案就會很大。所以 babel 提供了 transform-runtime 來將這些輔助函式「搬」到乙個單獨的模組 babel-runtime 中,這樣做能減小專案檔案的大小
],
"stage-0"
],"plugins": ["transform-runtime"]
}
presets 中 env 標識:將基於你的實際瀏覽器及執行環境
其中 modules有以下選項
"amd" | "umd" | "systemjs" | "commonjs" | false
, defaults to"commonjs"
.
enable transformation of es6 module syntax to another module type.
setting this tofalse
will not transform modules.
"scripts":
compile
:babel src --out-dir dist
用於將src資料夾中的檔案使用babel編譯到dist資料夾
"devdependencies":
在webpack中的配置,對比上面的babel-plugin-transform-runtime
babel-preset-env
babel-polyfill
babel-preset-stage-0
四項是沒有變化的
(1)babel-core
提供babel轉化的核心語法,上面的babel-cli
已包涵,由於在webpack中不需要指令,直接引入core即可
(2)babel-loader
將babel轉化為webpack能夠轉化的檔案
(3)webpack
webpack-dev-server
webpack包及服務
與上面相同
const path = require('path')
module.exports = ,
module: ]},
resolve: ,
devserver: ,
performance: ,
devtool: '#eval-source-map'
}
"scripts":
webpack-dev-server
啟動服務
--open
自動開啟
--hot
啟動熱更新
.
├── dist
├── index.html
├── node_modules
├── package.json
├── src
└── webpack.config.js
ES6環境搭建及react router學習
一 起因 es6新納入了很多振奮人心的新特性,真的很讓人忍不住去嘗試一下。不過,由於現在大部分的瀏覽器對es6的支援程度都不是很好。所以如果想要放心地使用一些新特性,還需要用一些工具,將es6或者es7的 轉為es5的 今天,就配置了一下環境,寫了乙個react router,主要是練習自己的程式設...
es6環境中,export與import使用方法
參考自阮一峰大神的教程 命令 宣告 如有問題,還請各位大神及時指正 es6環境下,乙個模組就是乙個獨立的檔案。該檔案內部的所有變數,外部無法獲取。如果你希望外部能夠讀取模組內部的某個變數,就必須使用export關鍵字輸出該變數。在src目錄下,新建common資料夾,新建profile.js,現在我...
如何在ES5與ES6環境下處理函式預設引數
函式預設值是乙個很提高魯棒性的東西 就是讓程式更健壯 mdn關於函式預設引數的描述 函式預設引數允許在沒有值或undefined被傳入時使用預設形參。眾所周知,在es5版本中,並沒有提供的直接方法供我們我們處理函式預設值 所以只能夠自己去增強函式的功能,一般會這麼來做 function dosome...