成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用npm管理NodeJS包

系統(tǒng) Linux
我們將討論如何使用 npm 管理 NodeJS 包。npm 是最大的軟件注冊(cè)中心,包含 600,000 多個(gè)包。每天,世界各地的開(kāi)發(fā)人員通過(guò) npm 共享和下載軟件包。在本指南中,我將解釋使用 npm 基礎(chǔ)知識(shí),例如安裝包(本地和全局)、安裝特定版本的包、更新、刪除和管理 NodeJS 包等等。

[[228437]]

前一段時(shí)間,我們發(fā)布了一個(gè)使用 pip 管理 Python 包的指南。今天,我們將討論如何使用 npm 管理 NodeJS 包。npm 是最大的軟件注冊(cè)中心,包含 600,000 多個(gè)包。每天,世界各地的開(kāi)發(fā)人員通過(guò) npm 共享和下載軟件包。在本指南中,我將解釋使用 npm 基礎(chǔ)知識(shí),例如安裝包(本地和全局)、安裝特定版本的包、更新、刪除和管理 NodeJS 包等等。

 

安裝 npm

用于 npm 是用 NodeJS 編寫的,我們需要安裝 NodeJS 才能使用 npm。要在不同的 Linux 發(fā)行版上安裝 NodeJS,請(qǐng)參考下面的鏈接。

檢查 node 安裝的位置:

  1. $ which node
  2. /home/sk/.nvm/versions/node/v9.4.0/bin/node

檢查它的版本:

  1. $ node -v
  2. v9.4.0

進(jìn)入 Node 交互式解釋器:

  1. $ node
  2. > .help
  3. .break Sometimes you get stuck, this gets you out
  4. .clear Alias for .break
  5. .editor Enter editor mode
  6. .exit Exit the repl
  7. .help Print this help message
  8. .load Load JS from a file into the REPL session
  9. .save Save all evaluated commands in this REPL session to a file
  10. > .exit

檢查 npm 安裝的位置:

  1. $ which npm
  2. /home/sk/.nvm/versions/node/v9.4.0/bin/npm

還有版本:

  1. $ npm -v
  2. 5.6.0

棒極了!Node 和 npm 已安裝好!正如你可能已經(jīng)注意到,我已經(jīng)在我的 $HOME 目錄中安裝了 NodeJS 和 NPM,這樣是為了避免在全局模塊時(shí)出現(xiàn)權(quán)限問(wèn)題。這是 NodeJS 團(tuán)隊(duì)推薦的方法。

那么,讓我們繼續(xù)看看如何使用 npm 管理 NodeJS 模塊(或包)。

 

安裝 NodeJS 模塊

NodeJS 模塊可以安裝在本地或全局(系統(tǒng)范圍)。現(xiàn)在我將演示如何在本地安裝包(LCTT 譯注:即將包安裝到一個(gè) NodeJS 項(xiàng)目當(dāng)中,所以下面會(huì)先創(chuàng)建一個(gè)空項(xiàng)目做演示)。

 

在本地安裝包

為了在本地管理包,我們通常使用 package.json 文件來(lái)管理。

首先,讓我們創(chuàng)建我們的項(xiàng)目目錄。

  1. $ mkdir demo
  2. $ cd demo

在項(xiàng)目目錄中創(chuàng)建一個(gè) package.json 文件。為此,運(yùn)行:

  1. $ npm init

輸入你的包的詳細(xì)信息,例如名稱、版本、作者、GitHub 頁(yè)面等等,或者按下回車鍵接受默認(rèn)值并鍵入 yes 確認(rèn)。

  1. This utility will walk you through creating a package.json file.
  2. It only covers the most common items, and tries to guess sensible defaults.
  3.  
  4. See `npm help json` for definitive documentation on these fields
  5. and exactly what they do.
  6.  
  7. Use `npm install <pkg>` afterwards to install a package and
  8. save it as a dependency in the package.json file.
  9.  
  10. Press ^C at any time to quit.
  11. package name: (demo)
  12. version: (1.0.0)
  13. description: demo nodejs app
  14. entry point: (index.js)
  15. test command:
  16. git repository:
  17. keywords:
  18. author:
  19. license: (ISC)
  20. About to write to /home/sk/demo/package.json:
  21.  
  22. {
  23. "name": "demo",
  24. "version": "1.0.0",
  25. "description": "demo nodejs app",
  26. "main": "index.js",
  27. "scripts": {
  28. "test": "echo \"Error: no test specified\" && exit 1"
  29. },
  30. "author": "",
  31. "license": "ISC"
  32. }
  33.  
  34. Is this ok? (yes) yes

上面的命令初始化你的項(xiàng)目并創(chuàng)建了 package.json 文件。

你也可以使用命令以非交互式方式執(zhí)行此操作:

  1. npm init --y

現(xiàn)在讓我們安裝名為 commander 的包。

  1. $ npm install commander

示例輸出:

  1. npm notice created a lockfile as package-lock.json. You should commit this file.
  2. npm WARN demo@1.0.0 No repository field.
  3.  
  4. + commander@2.13.0
  5. added 1 package in 2.519s

這將在項(xiàng)目的根目錄中創(chuàng)建一個(gè)名為 node_modules 的目錄(如果它不存在的話),并在其中下載包。

讓我們檢查 pachage.json 文件。

  1. $ cat package.json
  2. {
  3. "name": "demo",
  4. "version": "1.0.0",
  5. "description": "demo nodejs app",
  6. "main": "index.js",
  7. "scripts": {
  8. "test": "echo \"Error: no test specified\" && exit 1"
  9. },
  10. "author": "",
  11. "license": "ISC",
  12. "dependencies": {
  13. "commander": "^2.13.0"
  14. }
  15. }

你會(huì)看到添加了依賴文件,版本號(hào)前面的插入符號(hào) ( ^ ) 表示在安裝時(shí),npm 將取出它可以找到的最高版本的包。

  1. $ ls node_modules/
  2. commander

package.json 文件的優(yōu)點(diǎn)是,如果你的項(xiàng)目目錄中有 package.json 文件,只需鍵入 npm install,那么 npm 將查看文件中列出的依賴關(guān)系并下載它們。你甚至可以與其他開(kāi)發(fā)人員共享它或?qū)⑵渫扑偷侥愕?GitHub 倉(cāng)庫(kù)。因此,當(dāng)他們鍵入 npm install 時(shí),他們將獲得你擁有的所有相同的包。

你也可能會(huì)注意到另一個(gè)名為 package-lock.json 的文件,該文件確保在項(xiàng)目安裝的所有系統(tǒng)上都保持相同的依賴關(guān)系。

要在你的程序中使用已安裝的包,使用實(shí)際代碼在項(xiàng)目目錄中創(chuàng)建一個(gè) index.js(或者其他任何名稱)文件,然后使用以下命令運(yùn)行它:

  1. $ node index.js

 

在全局安裝包

如果你想使用一個(gè)包作為命令行工具,那么最好在全局安裝它。這樣,無(wú)論你的當(dāng)前目錄是哪個(gè)目錄,它都能正常工作。

  1. $ npm install async -g
  2. + async@2.6.0
  3. added 2 packages in 4.695s

或者

  1. $ npm install async --global

要安裝特定版本的包,我們可以:

  1. $ npm install async@2.6.0 --global

 

更新 NodeJS 模塊

要更新本地包,轉(zhuǎn)到 package.json 所在的項(xiàng)目目錄并運(yùn)行:

  1. $ npm update

然后,運(yùn)行以下命令確保所有包都更新了。

  1. $ npm outdated

如果沒(méi)有需要更新的,那么它返回空。

要找出哪一個(gè)全局包需要更新,運(yùn)行:

  1. $ npm outdated -g --depth=0

如果沒(méi)有輸出,意味著所有包都已更新。

更新單個(gè)全局包,運(yùn)行:

  1. $ npm update -g <package-name>

更新所有的全局包,運(yùn)行:

  1. $ npm update -g

 

列出 NodeJS 模塊

列出本地包,轉(zhuǎn)到項(xiàng)目目錄并運(yùn)行:

  1. $ npm list
  2. demo@1.0.0 /home/sk/demo
  3. └── commander@2.13.0

如你所見(jiàn),我在本地安裝了 commander 這個(gè)包。

要列出全局包,從任何位置都可以運(yùn)行以下命令:

  1. $ npm list -g

示例輸出:

  1. /home/sk/.nvm/versions/node/v9.4.0/lib
  2. ├─┬ async@2.6.0
  3. └── lodash@4.17.4
  4. └─┬ npm@5.6.0
  5. ├── abbrev@1.1.1
  6. ├── ansi-regex@3.0.0
  7. ├── ansicolors@0.3.2
  8. ├── ansistyles@0.1.3
  9. ├── aproba@1.2.0
  10. ├── archy@1.0.0
  11. [...]

該命令將列出所有模塊及其依賴關(guān)系。

要僅僅列出頂級(jí)模塊,使用 -depth=0 選項(xiàng):

  1. $ npm list -g --depth=0
  2. /home/sk/.nvm/versions/node/v9.4.0/lib
  3. ├── async@2.6.0
  4. └── npm@5.6.0

 

尋找 NodeJS 模塊

要搜索一個(gè)模塊,使用 npm search 命令:

  1. npm search <search-string>

例如:

  1. $ npm search request

該命令將顯示包含搜索字符串 request 的所有模塊。

 

移除 NodeJS 模塊

要?jiǎng)h除本地包,轉(zhuǎn)到項(xiàng)目目錄并運(yùn)行以下命令,這會(huì)從 node_modules 目錄中刪除包:

  1. $ npm uninstall <package-name>

要從 package.json 文件中的依賴關(guān)系中刪除它,使用如下所示的 save 選項(xiàng):

  1. $ npm uninstall --save <package-name>

要?jiǎng)h除已安裝的全局包,運(yùn)行:

  1. $ npm uninstall -g <package>

 

清除 npm 緩存

默認(rèn)情況下,npm 在安裝包時(shí),會(huì)將其副本保存在 $HOME 目錄中名為 .npm 的緩存文件夾中。所以,你可以在下次安裝時(shí)不必再次下載。

查看緩存模塊:

  1. $ ls ~/.npm

隨著時(shí)間的推移,緩存文件夾會(huì)充斥著大量舊的包。所以不時(shí)清理緩存會(huì)好一些。

從 npm@5 開(kāi)始,npm 緩存可以從 corruption 問(wèn)題中自行修復(fù),并且保證從緩存中提取的數(shù)據(jù)有效。如果你想確保一切都一致,運(yùn)行:

  1. $ npm cache verify

清除整個(gè)緩存,運(yùn)行:

  1. $ npm cache clean --force

 

查看 npm 配置

要查看 npm 配置,鍵入:

  1. $ npm config list

或者:

  1. $ npm config ls

示例輸出:

  1. ; cli configs
  2. metrics-registry = "https://registry.npmjs.org/"
  3. scope = ""
  4. user-agent = "npm/5.6.0 node/v9.4.0 linux x64"
  5.  
  6. ; node bin location = /home/sk/.nvm/versions/node/v9.4.0/bin/node
  7. ; cwd = /home/sk
  8. ; HOME = /home/sk
  9. ; "npm config ls -l" to show all defaults.

要顯示當(dāng)前的全局位置:

  1. $ npm config get prefix
  2. /home/sk/.nvm/versions/node/v9.4.0

好吧,這就是全部了。我們剛才介紹的只是基礎(chǔ)知識(shí),npm 是一個(gè)廣泛話題。有關(guān)更多詳細(xì)信息,參閱 NPM Getting Started 指南。 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2024-05-09 10:26:14

2022-08-14 08:29:21

npmNode

2017-04-05 14:22:06

NPM開(kāi)發(fā)工具

2022-02-16 20:36:30

瀏覽器PythonJavaScript

2017-03-02 11:58:31

NodeJS服務(wù)器

2024-06-20 08:06:04

2021-02-18 07:20:51

Nodejs前端開(kāi)發(fā)

2022-10-08 12:17:15

npm包CJSCommonJS

2021-11-11 11:13:20

js Npm基礎(chǔ)

2020-05-18 09:33:27

前端開(kāi)發(fā)工具

2019-06-18 16:40:26

NodeJS前端項(xiàng)目

2021-10-22 11:52:26

加密貨幣NPM數(shù)字貨幣

2021-07-30 16:34:31

前端Nodejs開(kāi)發(fā)

2021-07-27 10:15:57

瀏覽器NPM包Chrome web

2023-06-20 19:35:00

Node.js工具

2021-03-17 07:29:15

Systemctl 管理Linux

2019-04-24 18:00:57

Linuxsgdisk命令管理分區(qū)

2022-07-05 08:25:10

Reactyarn link

2017-07-13 17:00:17

內(nèi)置執(zhí)行器開(kāi)發(fā)

2025-01-06 13:03:11

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产激情福利 | 午夜精品久久久久久久久久久久久 | 欧美午夜一区 | av中文字幕在线观看 | 一级黄色av电影 | 成人三级电影 | 国产精品久久久亚洲 | 中文字幕视频一区二区 | 91精品国产乱码久久久久久久久 | 91精品国产一区二区三区香蕉 | 日韩二区 | 亚洲国产一区二区三区四区 | 自拍中文字幕 | 国产午夜精品一区二区三区嫩草 | 日韩三区 | 久久99精品久久久久久秒播九色 | 99久久久无码国产精品 | 国产一区二区精品在线 | 亚洲激情综合 | 在线国产一区二区 | 在线日韩中文字幕 | 欧美日韩久 | 国产一区二区精品 | 欧美片网站免费 | 亚洲一区二区成人 | 日韩免费三级 | 中文字幕不卡在线观看 | 精品在线一区二区三区 | 一级看片 | 新av在线| 开操网 | 精品国产乱码久久久久久丨区2区 | aaa大片免费观看 | 久久免费精品视频 | 91精品在线播放 | 一区二区三区视频在线观看 | 福利在线看 | 亚洲久久一区 | 日韩精品在线观看一区二区 | 亚洲成人在线免费 | a级片在线观看 |