當我運行:在當前目錄NPM安裝模塊
npm install my-app
該應用程序安裝到node_modules /我的應用程序內/ ...
我也試過
npm install -g my-app
但是,也不起作用。
如何將模塊直接安裝到當前目錄中?
當我運行:在當前目錄NPM安裝模塊
npm install my-app
該應用程序安裝到node_modules /我的應用程序內/ ...
我也試過
npm install -g my-app
但是,也不起作用。
如何將模塊直接安裝到當前目錄中?
npm install
安裝軟件包或者locally or globally:
npm
會在當前目錄下名爲node_modules
現有的文件夾,並創建爲每個文件夾中安裝包的文件夾。如果它在這裏找不到現有的node_modules
文件夾,它將查看當前目錄的祖先,直到找到它。如果找不到,則會在當前目錄中創建一個。-g
(全局)選項,該軟件包將安裝在全局位置。該位置因Linux發行版而異,但/usr/local/lib/node_modules/packagename
就是一個例子。 CentOS7使用/usr/lib/node_modules/packagename
。當應用程序包是您希望用作命令的東西時,您應該只使用-g
。
就像如何全局變量在某些情況下,一種嚴重的,但也是必要的 ,全球包裝很重要,但如果需要的話不是 最好避免。
一般來說,經驗法則是:
- 如果您使用
require('whatever')
安裝要在你的程序中使用的東西, ,然後安裝在本地,在 你的項目的根。- 如果您正在安裝要在 您外殼使用的東西,在命令行或某事上,全球安裝它,所以 它的二進制文件在你的
PATH
環境變量結束。
npm不會將包的文件直接安裝到當前目錄中。
但是,這實際上是一件好事。它使依賴文件與您的應用程序分開,並且Node automatically searches the node_modules
folder when you require
something。
你的第一個項目符號只是稍微真實。如果當前目錄中沒有'./ node_modules /'文件夾,那麼npm將搜索祖先目錄,直到找到一個包含'node_modules /'的目錄。如果找到一個,比如在grandparent目錄中,那麼'npm install packagename'會將'packagename'安裝在'../../ node_modules /'中。但是,如果它搜索文件樹直到到達根目錄並仍然沒有找到任何'node_modules /'文件夾,那麼你是正確的,npm將自動在當前目錄中生成該文件夾,並在那裏安裝軟件包。 – chharvey
謝謝。這是爲我做的祖先目錄的事情,我只是在本地創建一個文件夾,瞧。 – Antoine
謝謝!該父文件夾遍歷是我的問題。 – Fr0sT
你的當前目錄應該有一個package.json
。
然後寫npm install <module_name> --save-dev
或npm install <module_name> --save
和作爲@dalu表示將安裝到node_modules目錄
,如果你想擁有本地的包,你需要一個package.json
文件。
但是要創建package.json
文件,您必須通過運行npm init
來初始化npm文件。您可以使用npm install <module_name> --save[-dev]
。
我很高興我讀了'第二'最佳答案。感謝分享! –
我認爲真正的問題,我和OP會想,是安裝我的應用程序內, 就像你安裝一個應用程序,即 安裝的頂級應用程序,我會 爲「使用」作爲應用程序而不是「需要」作爲模塊。
npm從我的應用程序 目錄中安裝了一個級別的事實,是純粹審美 反對由新的npm用戶。
當我開始使用NPM(不久前),我解決它具有一個git 項目作爲安裝程序,克隆混帳,運行安裝腳本,但現在我已經習慣了它, 它不打擾我讓應用程序在「錯誤」的文件夾中。
只需在正確的位置 和您的用戶設置一些.sh,.bat或快捷方式,不會注意到。
這是你可以安裝一個模塊到當前目錄:
npm i --prefix ./ my-app
正如其他人所說,正確的方法是通過package.json
最簡單的解決方案! –
HTTP來配置你的項目://計算器。 com/questions/14742553/npm-local-install-package-to-custom-location#answer-14867050這回答你的問題 – Savaratkar