Node.js一個非常強大的地方,也就npm了.
npm is the package manager for JavaScript.
Node.js的包分為兩部分,一個是全局的包,一個是本地項目的包.一般來說,我們只有本地的包就可以了.但是一些命令功能的,則需要放到全局包的地方.一般情況下,這些命令會以cmd的形式存放在C:\Users\用戶名\AppData\Roaming\npm目錄下面.
如:我用npm install typescript -g安裝了typescript,就會多一個tsc.cmd命令,然后在命令提示符下面輸入tsc了
下面是tsc.cmd的內容
-------------------------------------------------------------------------------------
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\node_modules\typescript\bin\tsc" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\node_modules\typescript\bin\tsc" %*
)
-------------------------------------------------------------------------------------
在node的開源項目中,每個包又會依賴其它的的開源項目,這些被依賴的通過package.json描述并放在node_modules目錄下面,問題是每個包的依賴項,都會放在各種的node_modules目錄下面,結果就出現了層層嵌套并有大量的冗余依賴包. 可能一個幾十K的代碼,完整依賴包達到幾百M或上G,這個就有點呵呵了.
在windows下面,就會報max_path的錯誤,于是在正常的情況下,是刪除不掉的.
于是:npm提供了一個命令叫npm ddp或npm dedupe來將這些依賴收深度變成廣度,也就是將重復或目錄很深的,移到當前的node_modules
雖然有這個命令,但還是會出現超過max_path的情況
目錄我知道有兩種辦法:
1.就在進入到node_modules稍為深的目錄,然后用ctrl+x命令,剪切到當前盤符的根目錄下面,然后刪除就可以了,如果還不行,就再把更深的剪切出來,依此,就可以刪除目錄了.
2.在win10的linux子系統下,用rm命令刪除目錄就可以了
用npm命令安裝,沒有加-g參數的,表示是安裝到當前目錄
一般情況下,要用npm初始化工程
1.先創建好指定的目錄
2.在控制臺進入到這個目錄,輸入 npm init 然后按照提示輸入 這個時候,就會發現多一個package.js

然后創建一個index.js,這樣,你就有了一個最原始的node項目了
最后,不能所有的東西都是重造車輪,所以一般的情況下,我們會使用第三方開源庫
就用npm install 包名 命令
如:npm install express 為了便于移動,我們需要把依賴的庫保存 用--save選項
如:npm install express --save
有些僅是開發上用到的如babel之類的,只需要用選項: --save-dev
安裝完成后,打開package.json,就會發現有新的依賴內容
安裝完成后,可以用npm uninstall來卸載就可以.
一般情況下,發布的時候,不會把依賴在node_modeule一起打包出去,這個時候只需要把node_module之外的全部打包,然后在新的環境或目錄下面,輸入npm install就會自動把依賴的包全部安裝