簡體   English   中英

npm不會在本地安裝軟件包。 怎么了?

[英]npm won't install packages locally. What's wrong?

我想在本地安裝軟件包,但是npm總是將軟件包安裝到全局位置。 我正在運行以下命令:

npm install serialport

我沒有.npmrc命令,我沒有使用-g標志,所以我不知道它為什么不在本地安裝。 這是配置轉儲中的一個片段,顯示全局為false:$ npm config ls -l | grep global global = false globalconfig =“/ usr / local / etc / npmrc”globalignorefile =“/ usr / local / etc / npmignore”

而且這些包仍然是這樣安裝的

serialport@0.7.3 ../../../../node_modules/serialport

因此,除非我對“本地”的含義完全錯誤,否則這似乎是錯誤的。 我的印象是當前工作目錄中的“本地”意味着我可以在主代碼文件中執行“require”。 請參閱: http//blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/,如前一個與npm相關的問題所述。

有人可以給我一些提示嗎? 非常感謝你。

PS它不是特定於serialport模塊的。 它發生在所有人身上。

我的大部分答案都可以找到: http//npmjs.org/doc/folders.html#More-Information

我的理解是,npm會嘗試將它安裝在一個合理的位置。 因此,如果您有一個project/node_modules目錄並且您在/ project中並且執行npm install,那么它將使用product/node_modules

現在,如果您不小心做了一個cd project/css並執行npm install,那么npm將遍歷,直到找到您的node_modules目錄。 這是為了防止您意外地將其安裝在您的project/css

因此,在您的情況下,您在項目路徑中的某個位置有一個node_module目錄。 所以我猜你可以通過刪除該目錄或在項目文件夾中手動創建node_modules目錄來修復它。

如果您嘗試安裝軟件包的文件夾上有package.json文件,那么它將正確創建node_modules文件夾。

基本的package.json

{
    "name": "application-name",
    "version": "0.0.1"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM