前端工具,名詞實在太多了,這篇就來簡單記錄一下!
NVM
管理 npm 工具,類似 rvm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
NPM
套件管理
資料夾一定會有 package.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
package.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Yarn
Facebook 開源的 Yarn,這是針對存儲在 npm 或 Bower 註冊表中的 JavaScript 模組的一個代理包管理器。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
- yarn
- yarn github
- yarn migrating from npm
- [譯] Yarn 官方介紹: 一款新的 JavaScript 包管理器
- Facebook 新發佈的 Yarn JS 包管理器的 5 大功能
Bower
Bower 由 Twitter 團隊開發的前端套件管理工具,用來管理或安裝 Web 開發所需要的 Package,像是 CSS 和 JavaScript,也可以依據套件的相依性來安裝
簡單來說,開發者不用再去煩惱套件相依性問題
主要用來做前端資源依賴管理,跟npm很像,區別在於:npm管理的是node模組的依賴,bower管理的是前端資源的依賴,如css、javascript文件等。
- 快速管理與安裝網頁前端套件。
- 易於檢視專案的套件相依性,僅需檢查 bower.json 即可知道專案使用了哪些套件及版本。
- 一鍵佈署或更新網站所需要使用的套件。
1
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
Grunt
The JavaScript Task Runner,可以透過一些設定讓你輕鬆完成一些例行性的任務,例如壓縮檔案,編譯 coffee less,搬移到目標目錄,單元測試等等。(類似 Ruby 中的 rake)
建構工具,主要用來運行各種任務,比如文件壓縮、合併、打包等
在新專案使用Grunt,必須要先有兩個檔案
- package.json
- Gruntfile
在package.json中,Grunt 和Grunt 任務會用的到外掛,都會列在devDependencies 中。
1
|
|
1 2 |
|
Gulp
跟 grunt 做的事一樣,但是效能比較好
- 程式碼撰寫風格檢查、程式碼品質分析
- 最小化(Minification)、醜化(Uglify)
- 合併檔案 (Concatenation)
- 套用格式轉換 (Less, Sass, TypeScript, Babel, … ) • 套用 Vendor prefixes
- 自動注入 JS/CSS 引用到 HTML 之中 • 更新套件版本
- 快取HTML範本
- 單元測試、整合測試、連續性整合
1
|
|
主要是寫在 gulpfile.js
yeoman
用來自動產生網站骨架或程式碼的工具
包含以下三套工具,分別說明如下:
- yo - scaffolding tool from Yeoman 用來自動產生網站骨架或程式碼的工具
- bower - 用來管理特定網站下所使用的各式前端套件,如: jQuery
- grunt - 用來執行一些網站的自動化工作,例如單元測試、最小化、執行批次命令
1
|
|
以上比較
bower - 用來做前端資源依賴管理,跟npm很像,區別在於
- npm管理的是node模組的依賴
- bower管理的是前端資源的依賴,如css、javascript文件等,之後就不需要手動下載和管理你的腳本文件。
grunt/gulp - 一個幫助我們自動管理和運行JavaScript的任務之執行工具,可以用了檢查程式碼語法是否正確,壓縮程式碼,合併文件,透過Grunt可以簡化我們的工作流程。
Yeoman - 一個 Web 應用的架構(scaffolding)工具。它提供了非常多的樣板,用來生成不同類型的 Web 應用。這些樣板稱為生成器(generator)。
參考文件:
Browserify
允許用 nodejs 的程式碼風格來定義模組,並使用在瀏覽器上,可以完全跟nodejs後端模組通用,保持單個功能模組的重用性.
module.exports
來匯出模組功能require
來請求某個模組
1
|
|
Webpack
Webpack是所謂的模組打包工具,它可以幫你把各種文件(JS、JSX、coffee、less/sass…、圖片)打包成一系列的靜態資源來使用。
- 將你的 js 檔案 Bundle 變成單一的檔案
- 在你的前端程式碼中使用 npm packages
- 撰寫 JavaScript ES6 或 ES7(需要透過 babel 來幫助)
- Minify 或優化程式碼
- 將 LESS 或 SCSS 轉換成 CSS
- 使用 HMR(Hot Module Replacement)
- 包含任何類型的檔案到你的 JavaScript
1 2 3 4 5 6 7 8 |
|
- webpack
- Webpack Tutorial 繁體中文 Gitbook
- Webpack React 入門筆記
- WEBPACK入門教學筆記
- Webpack - 使用 Webpack
- 從無到有建立 webpack 設定檔(一)
- 從無到有建立 webpack 設定檔(二)設定樣式
- 從無到有建立 webpack 設定檔(三)進階設定
- 【webpack】的基本工作流程
- Webpack學習實踐系列(一)
- 如何使用 Webpack 模組整合工具
- 深入瞭解 Webpack Plugins
- webpack tutorial
- Webpack 2 入門課程
Babel
Babel是一個廣泛使用的轉碼器,可以將ES6程式碼轉為ES5程式碼,從而在現有環境執行。
其他參考資料