你不知道的 npm init
小編說:今天奉上小短文一篇,提前祝大家國慶長假快樂!
前言
在現代新建一個 JS 相關的專案往往都是從 package.json
檔案開始的,不過這個檔案裡需要的欄位實在是太多了,正常人都記不住,所以 npm 官方提供了 npm init
命令幫助我們快速初始化 package.json
檔案。執行之後會有一個互動式的命令列讓你輸入需要的欄位值,當然如果你想直接使用預設值,也可以使用 npm init -y
來超速初始化。
npx
隨著技術的快速發展,發現初始化 package.json
已經無法滿足大家的需求了,越來越多的專案需要進行整個專案的初始化。腳手架工具應運而生,除了有通用的腳手架工具yeoman,sao 之外,很多專案也會開發針對自己專案的腳手架工具,例如vue-cli,create-react-app 以及專門用來初始化 ThinkJS 專案的腳手架工具 ofollow,noindex">think-cli 等。執行這些工具需要先使用 npm install -g
全域性安裝這些模組之後才能正常執行。每次都執行這兩部操作那其實是有點麻煩的,所以 [email protected]
提供了 npx
命令將安裝執行兩個步驟合二為一,直接執行 npx think-cli
會先安裝 think-cli
模組然後執行 think-cli
命令,最終完成腳手架的啟動。
npm init <initializer>
可能 npm 的維護者們都比較懶吧,他們發現這麼執行還挺累的,所以在 [email protected]
裡增加了 npm init <initializer>
這種操作,簡單來說就是你執行 npm init thinkjs
的話 npm 會補全模組名為 create-thinkjs
並執行 npx create-thinkjs
。
npm init thinkjs # same as npx create-thinkjs
對於這種“偷懶”行為,我們只能冠冕堂皇的給它冠上讓初始化行為更加語義化了來讚揚一下 npm 了吧[攤手]。
後記
不得不說,偷懶是解放生產力的唯一動力(大霧,對於 npm 這種操作我只能給 1024 個贊,哈哈! npm init
和 npx
的執行基本是一致的,他們相對於直接執行全域性命令來說比較大的優勢就是能保證命令模組是最新版的,畢竟如果還要執行 npm update -g
的話又多了一部操作。所以大家還在等什麼,趕快去執行下 npm init thinkjs
試試吧!
參考資料: