安裝包
介紹
包是 npm 用來表示開發人員可以用於其專案的工具的術語。這包括從庫和框架(如 jQuery 和 AngularJS)到任務執行程式(如 Gulp.js)的所有內容。這些包將出現在一個名為 node_modules
的資料夾中,該資料夾還包含一個 package.json
檔案。此檔案包含有關所有包(包括任何依賴項)的資訊,這些依賴項是使用特定包所需的其他模組。
Npm 使用命令列來安裝和管理包,因此嘗試使用 npm 的使用者應該熟悉其作業系統上的基本命令,即:遍歷目錄以及能夠檢視目錄的內容。
安裝 NPM
請注意,要安裝軟體包,必須安裝 NPM。
安裝 NPM 的推薦方法是使用 Node.js 下載頁面中的一個安裝程式。你可以通過執行 npm -v
或 npm version
命令來檢查是否已安裝 node.js.
通過 Node.js 安裝程式安裝 NPM 後,請務必檢查更新。這是因為 NPM 比 Node.js 安裝程式更頻繁地更新。要檢查更新,請執行以下命令:
npm install npm@latest -g
如何安裝包
要安裝一個或多個軟體包,請使用以下命令:
npm install <package-name>
# or
npm i <package-name>...
# e.g. to install lodash and express
npm install lodash express
注意 :這會將程式包安裝在命令列當前所在的目錄中,因此檢查是否已選擇相應的目錄很重要
如果你當前的工作目錄中已經有 package.json
檔案並且其中定義了依賴項,那麼 npm install
將自動解析並安裝檔案中列出的所有依賴項。你還可以使用 npm install
命令的簡寫版本:npm i
如果要安裝特定版本的軟體包,請使用:
npm install <name>@<version>
# e.g. to install version 4.11.1 of the package lodash
npm install lodash@4.11.1
如果要安裝與特定版本範圍匹配的版本,請使用:
npm install <name>@<version range>
# e.g. to install a version which matches "version >= 4.10.1" and "version < 4.11.1"
# of the package lodash
npm install lodash@">=4.10.1 <4.11.1"
如果要安裝最新版本,請使用:
npm install <name>@latest
以上命令將在 npmjs.com 的中央 npm
儲存庫中搜尋軟體包。如果你不打算從 npm
登錄檔進行安裝,則支援其他選項,例如:
# packages distributed as a tarball
npm install <tarball file>
npm install <tarball url>
# packages available locally
npm install <local path>
# packages available as a git repository
npm install <git remote url>
# packages available on GitHub
npm install <username>/<repository>
# packages available as gist (need a package.json)
npm install gist:<gist-id>
# packages from a specific repository
npm install --registry=http://myreg.mycompany.com <package name>
# packages from a related group of packages
# See npm scope
npm install @<scope>/<name>(@<version>)
# Scoping is useful for separating private packages hosted on private registry from
# public ones by setting registry for specific scope
npm config set @mycompany:registry http://myreg.mycompany.com
npm install @mycompany/<package name>
通常,模組將本地安裝在名為 node_modules
的資料夾中,該資料夾可以在當前工作目錄中找到。這是 require()
將用於載入模組的目錄,以使它們可供你使用。
如果你已經建立了 package.json
檔案,則可以使用 --save
(簡寫 -S
)選項或其中一個變體自動將已安裝的軟體包作為依賴項新增到 package.json
。如果其他人安裝了你的軟體包,npm
將自動從 package.json
檔案中讀取依賴項並安裝列出的版本。請注意,你仍然可以通過稍後編輯檔案來新增和管理依賴項,因此通常最好跟蹤依賴項,例如使用:
npm install --save <name> # Install dependencies
# or
npm install -S <name> # shortcut version --save
# or
npm i -S <name>
只有在開發需要時才安裝軟體包並儲存它們,而不是執行它們,而不是執行應用程式需要它們時,請遵循以下命令:
npm install --save-dev <name> # Install dependencies for development purposes
# or
npm install -D <name> # shortcut version --save-dev
# or
npm i -D <name>
安裝依賴項
某些模組不僅提供供你使用的庫,還提供一個或多個要通過命令列使用的二進位制檔案。雖然你仍然可以在本地安裝這些軟體包,但通常最好全域性安裝它們,以便可以啟用命令列工具。在這種情況下,npm
會自動將二進位制檔案連結到適當的路徑(例如/usr/local/bin/<name>
),以便可以從命令列使用它們。要全域性安裝包,請使用:
npm install --global <name>
# or
npm install -g <name>
# or
npm i -g <name>
# e.g. to install the grunt command line tool
npm install -g grunt-cli
如果要在當前工作空間中檢視所有已安裝軟體包及其關聯版本的列表,請使用:
npm list
npm list <name>
新增可選的 name 引數可以檢查特定包的版本。
注意: 如果你在嘗試全域性安裝 npm 模組時遇到許可權問題,請抵制釋出 sudo npm install -g ...
以解決此問題的誘惑。授予第三方指令碼以使用提升的許可權在系統上執行是危險的。許可權問題可能意味著你對 npm
本身的安裝方式存在問題。如果你對在沙盒使用者環境中安裝 Node 感興趣,可能需要嘗試使用 nvm 。
如果你有構建工具或其他僅開發依賴項(例如 Grunt),你可能不希望將它們與你部署的應用程式繫結在一起。如果是這種情況,你將希望將其作為開發依賴項,在 devDependencies
下的 package.json
中列出。要將程式包安裝為僅開發依賴項,請使用 --save-dev
(或 -D
)。
npm install --save-dev <name> // Install development dependencies which is not included in production
# or
npm install -D <name>
你將看到該包然後被新增到你的 package.json
的 devDependencies
中。
要安裝下載/克隆的 node.js 專案的依賴項,你可以簡單地使用
npm install
# or
npm i
npm 將自動從 package.json
讀取依賴項並安裝它們。
代理伺服器背後的 NPM
如果你的 Internet 訪問是通過代理伺服器進行的,則可能需要修改訪問遠端儲存庫的 npm install 命令。npm 使用可以通過命令列更新的配置檔案:
npm config set
你可以從瀏覽器的設定面板中找到代理設定。獲得代理設定(伺服器 URL,埠,使用者名稱和密碼)後; 你需要按如下方式配置 npm 配置。
$ npm config set proxy http://<username>:<password>@<proxy-server-url>:<port>
$ npm config set https-proxy http://<username>:<password>@<proxy-server-url>:<port>
username
,password
,port
欄位是可選的。一旦你設定了這些,你的 npm install
,npm i -g
等將正常工作。