【NPM】常用包記錄
前言
閱覽很多的開源專案會見到很多的包,增長不少見識。這些見識沉澱下來,才會成為實力。
類目
1. VSCode語法提示
1.1 types
例如:
@types/node
就提供了 node
的常用的語法提示。
npm install @types/node --save-dev
然後,在 VSCode
中,引用 node
的元件,就可以獲得智慧提示:
var http = require( 'http' );
http. // 按下這個“.”的時候, VSCode 就會給你語法提示
依次類推,如果需要 cheerio
這個 npm
包的智慧提示,可以:
npm install @types/cheerio
可以在 淘寶的 NPM 映象 中搜索包名,看看是否有以 @types
開頭的包,如果有,就放心的用吧!
2. 構建工具
構建工具的作用,是對程式碼進行自動化的語法檢查、編譯、壓縮、測試、打包。常見的有 Gulp , Grunt 。
2.1. grunt
這是一個歷史悠久的構建工具,比 Gulp 要早。官方對它的定義是“ The JavaScript Task Runner ”,即“一個 JavaScript 任務執行器”。因為我們常用它來做打包,和自動化構建的工作,所以我們也說它是一個自動化的構建工具。
cnpm install grunt --save-dev
2.1.1 grunt-cli
這個是grunt的命令列介面,使用
grunt
命令前,需要安裝本包。
cnpm install grunt-cli --save-dev
2.1.2 grunt-babel
應用於 grunt 的 babel ,和babel同源。
cnpm install grunt-babel --save-dev
2.1.3 grunt-compare-size
對比兩個檔案,最後一個是會被壓縮的檔案
執行效果如下,會在 console
打印出資訊:
raw gz Sizes
267860 79363 dist/jquery.js
86824 30057 dist/jquery.min.js
raw gz Compared to last run
+32 +21 dist/jquery.js
+18 +7 dist/jquery.min.js
2.1.4 grunt-contrib-uglify
本包的功能是將 JavaScript 程式碼壓縮,刪掉註釋,替換掉變數名,最終剩下非常緊湊精小的 js 檔案。
cnpm install grunt-contrib-uglify --save-dev
2.1.5 grunt-contrib-watch
Run predefined tasks whenever watched file patterns are added, changed or deleted
當符合要求的檔案被建立、修改或刪除後,執行預定的任務
cnpm install grunt-contrib-watch --save-dev
2.1.6 grunt-eslint
Validate files with ESLint
使用 ESLint 對檔案程式碼風格進行檢查
cnpm install grunt-eslint --save-dev
Generate a list of authors from the git history.
從 Git 歷史資料生成貢獻者列表
cnpm install grunt-git-authors --save-dev
2.1.8 grunt-jsonlint
Validate JSON files from grunt.
執行 grunt 校驗 JSON 檔案。
cnpm install grunt-jsonlint --save-dev
2.1.9 grunt-newer
Run Grunt tasks with only those source files modified since the last successful run.
只有在檔案相比上次變化的情況下,才會執行相應的 grunt 任務
cnpm install grunt-newer --save-dev
2.1.10 load-grunt-tasks
Load multiple grunt tasks using globbing patterns
一行命令載入多個 grunt 任務
cnpm install load-grunt-tasks --save-dev
3. 編譯工具(TypeScript,ES6,ES5)
編譯工具將一種程式碼編譯成另一種程式碼,根據目的的不同有同類別降級編譯和跨類別編譯。
其中,TypeScript編譯成ES6、ES5就屬於跨類別編譯,是從TypeScript語言編譯成了JavaScript語言(的不同版本)
而ES6 到 ES5 就是降級編譯,將新標準的程式碼,編譯成舊標準的程式碼。
3.1 babel
一個將 ES6 編譯成 ES5 的工具
Turn ES6 code into readable vanilla ES5 with source maps
cnpm install babel --save-dev
3.1.1 babel-preset-es2015
支援將 ES6 的 JavaScript 轉換為 ES5 的 JavaScript 的外掛
cnpm install babel-preset-es2015 --save-dev
4. 測試工具
測試工具一般用來檢測程式碼中是否有問題,並給出提示。問題包括語法問題,程式碼風格問題等
4.1 eslint
(待續)
4.1.1 eslint-config-*
這個命名規範的包,表示各種 eslint 程式碼風格規則。比如 eslint-config-jquery 表示這個外掛包是 jquery 團隊的程式碼風格規範。
4.2 qunitjs
An easy-to-use JavaScript Unit Testing framework.
一個易用的JavaScript單元測試框架
cnpm install qunitjs --save-dev
4.2.1 qunit-assert-step
A QUnit plugin for asserting the proper sequence in which the code should execute.
用來檢查程式程式碼的執行順序是否正確。
cnpm install qunit-assert-step --save-dev
5. 其它
有一些其它的包,不好分類,先放著這裡等待以後整理
5.1 cross-spawn
它解決了 nodejs 在跨平臺執行命令方面存在的問題,例如在 Windows 下面不能執行 dir , del 命令等問題
cnpm install cross-spawn --save-dev
5.2 jsdom
A JavaScript implementation of the DOM and HTML standards
使用JavaScript對DOM和HTML的標準進行了實現
這個和 phantomjs
的區別在於, phantomjs
使用了 webkit
核心去載入頁面,而 jsdom
是自己解析 html
。
比較可以!
cnpm install jsdom --save-dev
5.3 phantomjs
Headless WebKit with JS API
提供了JS開發介面的無UIWebKit瀏覽器
這個除了可以用來進行爬蟲抓取,網頁截圖外,還可以做自動化網頁測試。比jsdom還要強大,但是更慢一些。
cnpm install phantomjs --save-dev
5.4 phantomjs-prebuilt
An NPM installer for PhantomJS, headless webkit with JS API.
和前面的一樣,是前面的新版本。
5.5 gzip-js
GZIP in pure JavaScript (works in the browser)
GZIP 是純瀏覽器端進行 GZIP 壓縮,建議不要用於服務端。
cnpm install gzip-js --save-dev
5.6 native-promise-only
Native Promise Only: A polyfill for native ES6 Promises only, nothing else.
在瀏覽器上支援 Promise 特性
cnpm install native-promise-only --save-dev
5.7 q
A library for promises (CommonJS/Promises/A,B,D)
支援Promise
cnpm install q --save-dev
5.8 requirejs
Node adapter for RequireJS, for loading AMD modules. Includes RequireJS optimizer
requirejs介面卡節點,載入AMD的模組。包括requirejs優化
cnpm install requirejs --save-dev
5.9 sizzle
A pure-JavaScript, bottom-up CSS selector engine designed to be easily dropped in to a host library.
一個純JavaScript的完善的CSS選擇器引擎。它是從jQuery中分出來的獨立專案。曾經是jQuery內建的部分,現在被獨立了出來。
可以基於這個構建自己的簡單的庫。
cnpm install sizzle --save-dev
5.10 strip-json-comments
Strip comments from JSON. Lets you use comments in your JSON files!
自動去除JSON檔案中的註釋資訊,讓我們可以在JSON中使用註釋。
cnpm install strip-json-comments --save-dev