npm 的常用命令技巧
如果你在日常工作流程中使用 NPM ,我相信你會喜歡這些提示和技巧。
生成 package.json
我們通常執行 npm init
,然後開始新增 npm 請求的資訊。 但是,如果我們不關心所有這些資訊,並且希望保留預設值,那麼對於 npm 請求的每一條資料,我們都按 enter 鍵。為了避免這種情況,你可以輸入 npm init -y
。這樣就可以跳過問題詢問了。
愚人碼頭注:你也可以使用 npm init --yes
作用是一樣的。
安裝模組
你可以使用更加簡單的 npm i
來代替 npm install
一次安裝多個模組
你不需要為每個模組鍵入一個 npm install
命令,例如:
bash 程式碼:
- npm i gulp-pug
- npm i gulp-debug
- npm i gulp-sass
你可以只執行一個命令,一次性安裝所有這些模組:
bash 程式碼:
- npm i gulp-pug gulp-debug gulp-sass
還有更加簡單的方法,如果所有名稱都以相同的字首開頭,你不需要鍵入整個名稱:
bash 程式碼:
- npm i gulp{-debug,-sass,-pug}
使用 install flags(安裝引數) 的快捷方式
如果要安裝軟體包並將其另存為生產依賴項,則通常會這樣做
bash 程式碼:
- npm i gulp --save-prod
你可以使用 -P
快捷方式,像這樣:
bash 程式碼:
- npm i gulp -P
對於開發依賴項也是一樣,不需要鍵入完整的 --save-dev
標誌,你可以使用 -D
快捷方式,像這樣:
bash 程式碼:
- npm i gulp -D
預設情況下,當你執行不帶任何 flags(引數) 的 npm install
時,npm 會將包作為依賴項新增到 package.json
檔案中。 如果要防止這種情況,請使用 --no-save
flags(引數) 安裝,如下所示:
bash 程式碼:
- npm i gulp --no-save
獲取包資訊
下面的命令將顯示 vue 包的相關資訊:
npm view vue
或 npm v vue
如果你只想獲得最新版本的軟體包,可以試試下面這個命令:
bash 程式碼:
- > npm v vue version
- > 2.5.17
如果你想獲得 npm 包完整的版本列表,請嘗試複數形式
bash 程式碼:
- > npm v vue versions
- > [ '0.0.0',
- '0.6.0',
- '0.7.0',
- ...
- '2.5.15',
- '2.5.16',
- '2.5.17-beta.0',
- '2.5.17' ]
安裝特定版本的軟體包
如果要安裝版本,而不是最新版本的軟體包,可以鍵入:
bash 程式碼:
- npm i [email protected]
鑑於記憶名稱比數字更容易(至少對我來說),你可以使用 dist-tag 列表中名稱,執行 npm v
命令即可得到該列表 ,如下所示:
bash 程式碼:
- npm i [email protected]
搜尋 package(包)
有時你可能記不住你前一段時間或你朋友推薦的某個 package(包) 的確切名稱。 在這種情況下,你可以使用 npm 搜尋,直接在終端中執行搜尋:
bash 程式碼:
- npm search gulp debug
或者
bash 程式碼:
- npm s gulp debug
這將列印包含描述,作者和一些其他資訊的包列表:
解除安裝 package(包)
如果你不想開啟 package.json 檔案並從那裡手動刪除依賴項,則可以使用以下命令將其刪除:
bash 程式碼:
- npm uninstall vue
這將從 node_modules
資料夾和 package.json
檔案中刪除該包。 當然,你可以使用 rm
, un
或 r
來實現相同的效果,例如:
bash 程式碼:
- npm rm vue
如果由於某種原因你只想從 node_modules
資料夾中刪除包檔案,但仍然將其作為依賴項儲存在 package.json
檔案中,則可以使用 --no-save
引數:
bash 程式碼:
- npm rm vue --no-save
列出依賴項
如果要檢視專案依賴項列表,可以使用
bash 程式碼:
- npm ls
這將列出 package.json
檔案中所有的依賴項以及它們的所有依賴項。 如果你只想列出你的依賴項,你可以這樣做
bash 程式碼:
- npm ls --depth=0
這將打印出這樣的東西:
bash 程式碼:
- ├── [email protected]
- ├── [email protected]
- └── [email protected]
當然,如果要檢視所有全域性安裝的包的列表,可以使用 -g
標誌
bash 程式碼:
- npm ls -g -depth 0
執行測試
你可以使用 npm run tests
執行測試,但你可以用 npm test
甚至更簡短的 npm t
代替。
顯示可用的 script
有時,我們希望檢視 package.json
檔案中包含的指令碼。 我們當然可以開啟 package.json
檔案,但我們也可以這樣做:
bash 程式碼:
- npm run
如果在 package.json
檔案中有這樣的配置,如下所示:
bash 程式碼:
- "scripts": {
- "test": "jest",
- "build": "gulp build"
- }
那麼 npm run
命令將顯示以下內容:
bash 程式碼:
- Lifecycle scripts included in npm:
- test
- jest
- available via `npm run-script`:
- build
- gulp-build
從 Github 倉庫安裝 package(包)
你可以直接從 Github 倉庫安裝一個包:
bash 程式碼:
- npm i https://github.com/sindresorhus/gulp-debug
或者你可以省略域名部分
bash 程式碼:
- npm i sindresorhus/gulp-debug
開啟包的 Github 頁面
你當然可以通過 Google 搜尋,然後查詢該頁面,或者你可以執行以下操作:
bash 程式碼:
- npm repo create-react-app
無需安裝軟體包即可執行上述命令。
列出所有可用的 NPM 環境變數
你可以通過執行以下命令來檢視可供我們使用的 NPM 變數的完整列表:
bash 程式碼:
- npm run env | grep npm_
上面的命令將列印如下內容:
bash 程式碼:
- npm_config_fetch_retry_maxtimeout=60000
- npm_config_tag_version_prefix=v
- npm_config_strict_ssl=true
- npm_config_sso_type=oauth
- .
- .
- .
這些變數的好處是它們可以在你的指令碼中使用,你甚至可以建立自己的 NPM 環境變數,讓我們看看如何建立。
新增自己的 NPM 變數
你可以通過向 package.json
檔案新增自己的 NPM 變數。 它可以是任何 key,但我更喜歡將所有 NPM 變數放在 config
key 中,以保持結構有序。 像這樣:
bash 程式碼:
- "config": {
- "build_folder":"./dist"
- }
現在,如果你使用前面討論的命令 npm run env | grep npm_
列出你的變數,你會看到你的新變數在那裡:
bash 程式碼:
- npm_package_config_build_folder=./dist
- npm_config_fetch_retry_maxtimeout=60000
- npm_config_tag_version_prefix=v
- npm_config_strict_ssl=true
- npm_config_sso_type=oauth
- .
- .
- .
預設情況下,npm 會將你的變數命名以 npm_package
為字首,並保持其在 package.json檔案中的結構,即 config_build_folder
。
在 NPM script 中使用 NPM 變數
一旦你看到了完整的變數列表,並且你希望在 script 中使用這些變數中的任何一個的值,那麼你就可以在 package.json 中執行此操作(請參閱上一節中變數 npm_package_config_build_folder
的值)
bash 程式碼:
- "scripts": {
- "build": "gulp build --dist $npm_package_config_build_folder"
- }
一旦你用 npm run build
執行這個命令,它將被執行為
bash 程式碼:
- gulp build --dist ./dist
在我的日常工作流程中,這些是我最喜歡的快捷方式和命令,有沒有你喜歡的快捷方式或命令沒列在這篇文章中,歡迎留言告訴我。