用ES6構建新一代可複用JS模組
你是不是也在為可以使用ES6的新特性而興奮,卻不太確定應該從哪開始,或者如何開始?不止你一個人這樣!我已經花了一年半的時間去解決這個幸福的難題。在這段時間裡 JavaScript 工具鏈中有幾個令人興奮的突破。
這些突破讓我們可以用ES6書寫完全的JS模組,而不會為了一些基本的條件而妥協,比如testing,linting 和(最重要的)其他人可以輕易理解我們所寫的程式碼。
在這篇文章中,我們集中精力在如何用ES6構建JS模組,並且無論你在你的網站或者app中使用CommonJS,AMD(asynchronous module definition)或者普通的網頁script引入,這個模組都可以輕易被引用。
The Tools
在這個系列文章的第一部分和第二部分,我們來看一下這些卓越的工具們。在這篇文章中,我們詳細說明如何編寫,編譯,打包程式碼;而在第二篇文章會集中在linting,formatting 和 testing(利用 JSCS,ESLint,mocha,Chai,Karma 和 Istanbul)。讓我們來看看在這篇文章中涉及到的工具:
-
Babel(剛剛度過了它的第一個生日)可以把ES6程式碼轉化為ES5程式碼,不僅簡單,而且優雅。
-
Webpack,webpack平寂了我們組裡的“模組戰爭”,我們每個人都鎮定得使用著webpack來應付_一切_(CommonJS,AMD 和 ES6)。它也在打包獨立的ES6庫方面做得非常棒——這是我們在過去一直渴望看到的。
-
Gulp一個強大的自動化構建工具。
我們將要討論的是書寫客戶端(client-side)ES6 _libraries_,而不是整個網站或者 app 。(無論是在你的開源專案裡或者是在你工作中的軟體專案,這是可以在不同的專案中可複用的程式碼。)”等一下!“,你可能會想:”這個難道不是在瀏覽器支援ES6之後才能實現的嗎?“
你是對的!然而,我們利用上面提到的Babel可以把ES6程式碼轉化為ES5程式碼,在大多數情況下現在就可以實現我們的目標。
MAKE IT EASY FOR ANYONE TO CONSUME
我們目標的第二部分是寫一個無論在什麼模組規範下都可以使用的JS模組。AMD死忠飯?你會得到一個可用的模組。CommonJS 加 browserify 才是你的最愛?沒問題!你會得到一個可用的模組。或者你對AMD和CommonJS不感冒,你只是想要在你的頁面上加一個
你會看到我們已經依賴legoQuotes.js(就在babel的browser-polyfill.js下面),就像其他依賴一樣使用
原文釋出時間:2016-02-09
原文作者:MrDream
本文來源掘金如需轉載請緊急聯絡作者
相關文章
- (譯)用ES6構建新一代可複用 JS 模組JS
- 第5章:可複用性的軟體構建方法 5.2面向複用的構造
- 模組化方式構建Node.js應用程式Node.js
- 第5章:可複用性的軟體構建方法 5.1可複用性的度量,形態和外部觀察
- 自定義元素探祕及構建可複用元件最佳實踐元件
- Vue.js可複用性 & 組合Vue.js
- AD PCB模組複用
- ES6構建React應用時,this指向問題React
- 如何優雅地構建易維護、可複用的 Android 業務流程Android
- 用ANT構建java可執行程式 (轉)Java行程
- 如何優雅地構建易維護、可複用的 Android 業務流程(二)Android
- WEBPACK + JSP 構建多頁應用WebJS
- 構建流式應用—RxJS詳解JS
- 使用AngularJS構建大型Web應用AngularJSWeb
- 構建可擴充套件的應用(一) (轉)套件
- Node.js 系列:構建原生 Node.js 應用Node.js
- 用Gulp、Babel等為瀏覽器構建ES6環境Babel瀏覽器
- 用VIPER構建iOS應用iOS
- js path模組的應用JS
- 可複用的快取元件快取元件
- Unity——可複用揹包工具Unity
- [譯]用AngularJS構建大型ASP.NET單頁應用(二)AngularJSASP.NET
- [譯]用AngularJS構建大型ASP.NET單頁應用(三)AngularJSASP.NET
- 用 VIPER 構建 iOS 應用架構(2)iOS應用架構
- 如何構建可控,可靠,可擴充套件的 PWA 應用套件
- js es6深入應用系列(Generator)JS
- 構建 API 應用API
- reusable:前端可複用程式碼目錄結構的設計前端
- 設計一個可複用的 ArkWeb 基礎元件架構Web元件架構
- 使用React.js和應用快取構建快速同步應用程式ReactJS快取
- 使用 Spring Boot 構建可重用的模擬模組Spring Boot
- Django與微服務架構:構建可擴充套件的Web應用Django微服務架構套件Web
- 分析模式:可複用的物件模型模式物件模型
- 使用Meteor和Node.js構建實時應用Node.js
- 使用汽車應用庫構建應用
- 六邊形架構教程:構建可維護的Web應用程式 - DEV架構Webdev
- Unity應用架構設計(4)——設計可複用的SubView和SubViewModel(Part 1)Unity應用架構View
- ES6模組與commonJS模組的差異JS