npm 做爲前端一大利器,那必須是要好好掌握,在平時的開發中,用的最多的應該就是 npm install
,不過,這麼強大的工具,做用確定不止如此。html
現將本身所知道的有關 npm 的知識給整理出來,大都是平時用的不少的,整合出來不只是方便查找,更重要的是身爲社會主義的接班人,少先隊員所應具有的良好品質也在時刻提醒我,要爲社會做出應有的貢獻。寫到這,我不由低頭一看,胸口的紅領巾好像更紅了,太陽公公好像也在向我微笑點頭。前端
在開始前還要再說一下,合集會持續更新,由於知識老是不斷在補充的。但也不會頻繁更新,通常會攢個大再放,持續更新,建議收藏,文章會放在個人 blog 文集裏,blog 裏面仍是會快速更新的啦。vue
再多嘴一句,windows 的同窗能夠試試 windows 的命令行神器 cmder,這能夠減小不少使用 windows 原生命令行時奇怪的錯誤。node
強烈建議最好不要使用 cnpm,會有各類奇怪的 bug,相對 cnpm,給 npm 設置 registry 是一個好選擇,使用 nrm 是更好的選擇。ios
npm init
建立基礎 package.json# 會用命令行交互式完成建立 npm init # 直接略過交互式,使用 defaultValue 建立 package.json npm init -y
在運行內存比較小的電腦上可能你會碰到內存溢出致使程序被 kill 的場景,使用 --max-old-space-size
或許能夠解決這個問題。git
{ "scripts": { "start": "node --max-old-space-size=4076 index.js" } }
固然,若是說 package.json 中 scripts 中的命令不少,你就須要在每一個地方增長該指令,已經有 issue 提到了該問題,或許在 node 以後的版本會解決這個問題。github
Add max-old-space-size to npmrcnpm
再者,咱們不只能夠在 scripts 中添加,還能夠在執行命令中添加,以下,一個命令行類庫的 bin 目錄下的執行文件。json
#!/usr/bin/env node --max-old-space-size=4096 const cli = require("../src").default; cli.run();
npm publish
發佈 npm 包這裏只列出發佈的步驟,具體怎麼寫 npm 包能夠到網上搜搜相關內容,各路大佬已經整理了很多,博主就不在此班門弄斧了。axios
須要注意的是,咱們須要先把 registry 切換到 npm 起始源,而不能使用 taobao 的,taobao 是同步了 npm 包的國區資源,實際資源仍是來自 npm,因此須要先發布到 npm 再等 taobao 自動同步(順即可以刷一波下載量)。
# 切換 registry 至 npm nrm use npm # 第一次使用 npm publish # 若是你是第一次使用 npm publish,你須要添加帳號 npm adduser # 非第一次使用 npm publish # 登錄帳戶,這一步其實也能夠不用作,直接看 whoami 便可 npm login # 查看當前帳戶 npm whoami # 發佈 npm publish
npm view
查看某一庫詳細信息對打了 tag 的庫仍是挺方便的,能夠查看對應 tag 名稱,若是須要安裝某一個具體 tag 的庫,可使用 npm install ${packageName}@${tag}
npm view @vue/cli # 查看 view 以後,安裝指定 tag npm install -D @vue/cli@next
npm root
獲取當前項目的 node_modules 路徑能夠在命令行類庫中使用,會向上查找 node_modules 的路徑,並返回絕對路徑。
可是也是有 bug 的,若是你在空文件夾下使用 npm root
,會直接以當前路徑加上 node_modules 返回,即便你的目錄下並無 node_modules 文件夾。
npm root
舉個例子,若是在很深的路徑中,須要使用當前項目依賴的 node_modules/.bin
中的指令,咱們有兩個辦法找到目錄
const moduleRootPath = path.join(process.cwd(), "node_modules");
const moduleRootPath = execa.sync("npm", ["root"]);
npm list
查看全局安裝的模塊npm list -g --depth=0
慎用,除非你知道你在作什麼,不然不要用。
rm -rf /usr/local/lib/node_modules
npm cache
清除 npm 緩存報錯 npm resource busy or locked
時候,或者其餘莫名報錯的時候,能夠試試看。
# force 表強制清除緩存 npm cache clean --force
排名不分前後,會按照博主的記憶順序來記錄。其中有命令行工具,還有好用的三方庫推薦,大抵不會有主流三大框架的三方庫(大家懂得確定比我多),會以 node 類庫爲主。
這麼好用的東西不說太多了,大部分人應該都用着,對標 npm,能夠更好的處理項目依賴(可是也發現有狀況是 npm 能夠安裝成功,yarn 安裝反而報錯)。
甩上命令,一個字就是衝。
npm install yarn -g # 安裝 devdep 依賴 yarn add -D @types/node # 安裝 dep 依賴 yarn add axios # 安裝 peerDep 依賴 # peerDep 依賴意思是,若是你安裝了我,那你最要也安裝 XXX yarn add -P vue # 全局安裝依賴 yarn global add @vue/cli
在下載某些庫的時候發現即便配置了 registry 的時候,下載仍是異常緩慢,甚至半天都不動一下?你可能須要這個。
這個庫會自動配置不少第三方庫(例如 electron)的地址到國區鏡像,雖然也能夠在須要的時候手動配置,可是,有一鍵操做那還要啥自行車!下載速度嗖嗖嗖。
npm install -g mirror-config-china
當你常常須要切換 registry 源(好比你須要 npm publish
代碼,這時候就須要切換到 npm 起始源),這個工具能夠幫忙。
npm install -g nrm # 添加 npm registry 至 nrm nrm add npm http://registry.npmjs.org # 添加 taobao registry 至 nrm nrm add taobao https://registry.npm.taobao.org # 使用 taobao 的 registry nrm use taobao # 使用 npm 的 registry nrm use npm
能夠很方便的在本地起一個靜態服務,固然還有不少參數,這裏就很少作演示,只作個拋磚引玉,具體能夠查看如下文檔。
npm install -g http-server
舉個小例子,當你興高采烈開發完一個項目打包至 dist,想要看看效果如何,你就能夠進入 dist 文件夾,而後啓動 http-server
服務,他會默認以 index.html
做爲入口啓動靜態服務,而且還會監聽文件改變。
cd dist http-server
雖然可能很少見,可是你仍是會碰到須要在同一臺電腦上運行不一樣版本的 node 這種問題,這個庫能夠解決。
# 查看當前使用的 node 版本 nvm current # 安裝 node 指定版本 nvm install 12.14.0 # 切換 node 版本 nvm use 12.14.0 # 使用 12.14.0 版本的 node 運行 index.js nvm run 12.14.0 index.js
最近頭髮的脫落速度和瑞幸咖啡的下跌速度相似,忘性也愈來愈大,常常會代碼寫着寫着就忘了剛纔我要作什麼,對於一件事情之前可以保持四五個小時的專一,如今思惟很容易打岔,想着,啊是否是年紀大了,之前歷來沒有對歲數有過恐慌,可是看着公司裏優秀的新生代,難免會有些焦慮。如何才能不焦慮?不是廢寢忘食的工做,而是應該讓本身成爲不可替代的那我的,感情是如此,工做亦是如此。
這裏不是蹭熱點,司徒正美大大的消息想必你們或多或少都瞭解了一些,可惜,說是天才的隕落也不爲過。因此你們在平時的開發學習中,除了要關注技術細節,更要多多關注本身的身體。賺錢的機會有不少,但惟有健康的身體才能支撐起你偉大的理想。
ps: 寫完以後發現本身瞭解的也很少,寫的挺雜的,若是各位大佬有私貨能夠偷偷摸摸分享給我,我琢磨琢磨整理整理給加上去,蟹蟹。
代碼即人生,我甘之如飴。
技術不斷在變 頭腦一直在線 前端路漫漫 咱們下期見
我在這裏 gayhub@jsjzh 歡迎你們來找我玩兒。
歡迎小夥伴們直接加我,拉你進羣一塊兒學習前端呀,記得備註一下你是從哪裏看到個人文章的哦~