預告:JavaScript模塊全覽

以前寫的文章急速Js全棧教程獲得了不錯的閱讀量,霸屏掘金頭條3天,點贊過千,閱讀近萬,甚至還有人在評論區打廣告,可見也是一個小小的生態了;)。看來和JS全棧有關的內容,仍是有人很有興趣的。今天看到的霸屏的,也是講全棧的,見參考文章7前端

接下來要寫的是模塊。JavaScript Module 真是很討厭,可是不得不瞭解的話題。奇葩在於:node

  1. 它一個很是老的語言,而且使用很是普遍
  2. 但是它不少年來也不支持模塊。這得廠家當前是多大的心呢
  3. 再一個但是,它能夠直接用現有的語言機制,實現本身的模塊,這個就厲害了,由於它釋放了社區的力量。事實證實,社區果真不可小看,這個年代,螞蟻雄兵賽過大象的
  4. 再再一個可是,它的模塊還能夠有不少型的,這說的是分裂
  5. 這麼多型的模塊,還搞了各自獨立的標準出來,這說的是整合

最近的ES2017,終於在前端也有了媲美后端的模塊,可是你們並不許備把它用起來,不少人表示須要繼續Webpack玩轉ES6模塊git

把ES6模塊真用的起來,能夠不在意Webpack等打包工具帶來的加載優化,各類小文件沒必要打包這點來講,我看還得加上HTTP/2的配合就好不少了。這也是文章將要介紹的一個主旨吧。ES6模塊的引入,確實有可能對當前主流的打包模式有些影響,參考文章6內有所論述es6

文章天然也很多,可是寫做此文的理由仍是存在:github

  1. 我尚未看到一個完整的全覽,而且結合HTTP/2的更加沒有看到。
  2. 並且,在我看來,即便有了ES6模塊,也得了解和學習以前拼出來的各類模塊,由於社區內的代碼還大量的使用這樣的模塊,其中的一些設計模式,好比IIFE,也是值得一看的。
  3. 看到JS社區的熱情和推進力,相信JS發展的將來是美好的

參考文章很多,其中模塊歷史和選型以下:web

  1. 前端模塊化開發那點歷史
  2. 梳理的仍是比較清晰
  3. 有點黑客精神的小夥伴,玩的很廣譜
  4. 介紹Bower
  5. npm for Beginners: A Guide for Front-end Developers
  6. Es6module 出來了,是否應該從新考慮打包的方案?
  7. 先後端分離 Vue + NodeJS(Koa) + MongoDB,從產品到開發,全棧實踐沒有看過的,不妨去看看。

提到模塊,也不得不提到各類模塊依賴管理工具,也還有前端工程化的內容。一個前端組件,卻經常提到可使用npm安裝此組件,但是npm是後端的nodejs領域的東西啊,因此,這樣的提法是有些使人困惑的。好比爲何NPM做爲後端模塊的管理工具,前端也在使用它,有什麼優勢和缺點,能夠在這裏瞭解顯示狀況:npm、bower、jamjs 等包管理器,哪一個比較好用?,還有這裏npm and the front end,NPM官方也對npm在前端的使用,提出了本身的見解,捎帶着,也有前端自動化,搜索詞是 why a front end component install by npm,對於喜歡Google發現的人來講,這類詞頗有用 。npm

將來的文章的內容綱要:segmentfault

  1. 最古老的模塊加載<script>標籤
  2. 此方法的若干問題
  • 全局變量。全局命名污染和命名衝突
  • 依賴管理。都須要HTML管理,而不是分層管理依賴,多文件加載次序很是關鍵
  • 效率。太多HTTP請求,和並行加載效率低下
  1. 有問題引起的解決方法
  • 命令空間,匿名閉包、依賴引入
  1. 當前主流的模塊技術
  • YUI方法,YUI Combo方法
  • Nodejs的作法,Commonjs方案
  • Nodejs借鑑,能夠借鑑的(接口),不能夠借鑑的(同步和異步)
  • Require.js實踐,AMD和CMD,依賴就近原則
  • 從手寫模塊,到自動編譯,Browerify,Webpack,Rollup
  1. 剛剛落地的模塊技術
  • ES6模塊,官方發力,對現有技術的影響
  • 彌補ES6問題,HTTP/2
  1. 最佳實踐

寫這篇文章,估計耗時2周左右。寫預告的緣由,是但願獲得反饋,若是有些人支持的話,我就會寫,若是你們興趣缺缺,我也就不麻煩本身了。畢竟,本身搞懂是沒必要寫做的,寫了的話,就是但願能夠討論,能夠獲得反饋的。後端

能夠經過點贊,來代表你的態度。設計模式

相關文章
相關標籤/搜索