npm install及其配置參數使用細則

npm install是用來安裝項目所依賴的模塊的。當我們使用git clone將線上項目下載到本地時,並沒有下載node_modules這個目錄。因爲它保存了項目所依賴的所有模塊,通常有幾百兆大。雖然我們沒有得到node_modules這個文件夾,但我們可以通過pakage.json這個文件的值項目所依賴的模塊。然後,運行npm install來安裝pakage.json中dependencies下的所有模塊。npm install <=>npm i
npm install的後面還可以跟一些參數。(符號<=>表示等價)

npm intsall moduleName

表示安裝模塊到項目node_modules目錄下,不會將模塊依賴寫入pakage.json的devDependencies或dependencies中,這也就意味着,當別人git clone你的項目時,不知道你依賴了這個模塊,運行npm install時也不會下載這個模塊,所以當啓動項目時很有可能會報錯說某個模塊找不到。

npm install -g moduleName <=> npm install modulesName -g

表示安裝模塊到全局的node_modules文件夾下(也就是說你的電腦在安裝nodejs時指定的一個位置),該命令同樣不會把依賴寫入pakage.json,所以存在和上條同樣的問題。

npm install -save moduleName <=> npm install moduleName --save <=> npm install moduleName -S

表示安裝模塊到項目node_modules目錄下,會將模塊依賴寫入pakage.json的dependencies中。默認情況下,運行npm install會將模塊下載到項目目錄下。

npm install -save-dev moduleName <=> npm install moduleName --save-dev <=> npm install moduleName -D

表示安裝模塊到項目node_modules目錄下,會將模塊依賴寫入pakage.json的devDependencies中。默認情況下,運行npm install會將模塊下載到項目目錄下。

上面說到,默認情況下,運行npm install會下載模塊,但是當運行npm install --production或者註明NODE_ENV的值時production時,pakage.json中devDependencies中的模塊不會被自動下載。這是因爲,devDependencies中指定的模塊是在開發時需要用的,比如gulp,dependencies中指定的是項目運行必備的,比如express。

上面也有說到項目下的node_modules目錄和全局下的node_nodules目錄,他們在node搜索模塊的過程中優先級是不同的,如下圖所示。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章