npm包安裝與npm link

npm包安裝的兩種方式

全局安裝

  • npm install <package-name> -g
  • 意義:將安裝的包作爲一個命令行工具,在任意目錄下都可以訪問調用
  • 安裝路徑:默認安裝在 /usr/local/lib/node_modules下,可以通過配置安裝到其他路徑下。如通過nvm(node版本管理工具)可以配置到對應的node版本下面

局部安裝

  • npm install <package-name>
  • 意義:在當前目錄下,使用require語句加載
  • 安裝路徑:在當前目錄下的node_modules目錄中

Mac中的Shell與node

  • Shell中在終端可以直接敲的命令,其實是在執行
    • /bin 目錄下的腳本
    • /usr/bin目錄下的腳本
    • /usr/local/bin目錄下的腳本

這些腳本路徑是由/.etc/paths文件(Mac環境變量設置文件)內容來指定。另外,username/.bash_profile文件也可以配置環境變量,該文件在用戶目錄下。

npm全局安裝與環境變量

當我們在npm install -g的時候,其實是將相關文件安裝在/usr/local/lib/node_modules目錄下,同時在全局命令/usr/local/bin目錄下會有一個映射腳本,將其指向/usr/local/lib下的真實文件。這麼做的好處是,可以在保證只有一份可執行文件的前提下,給命令取別名。

npm link

參考
npm link 就像做了npm install -g,唯一的區別是,npm link/usr/local/lib 下的 node_modules 裏不是存的真實的文件,而是存了一個快捷方式,指向你當前執行 npm link 的目錄。
如果開發的是node包,則執行的命令名真實執行的文件入口,會根據項目的 package.json 裏 bin 的配置來獲取。

使用

進入node包的項目目錄,輸入npm link

全局link

測試 node 環境下運行的包時,需要使用全局 link​。​並且做npm link之前,需要在 package.json 裏配置 bin 字段。

// package.json
"bin" : {  
	"your-command-name": "./path-to/your-command-entry-file"
}

在當前目錄下,輸入npm link。成功後,就可以直接在終端執行全局命令 your-command-name

項目下link

如果想要在項目中使用這個node包,如該node包是一個組件庫,則需要兩步link

  • 先將該node包進行全局link
  • 在項目中進行npm link package-name
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章