簡體   English   中英

我如何要求在全球范圍內隨npm安裝的模塊?

[英]How do I require modules installed with npm globally?

我已經全局安裝了some-npm-module ,但是當我require()它時出現錯誤:

$ node    
> const module = require('some-npm-module')
> import module from 'some-npm-module'

Error: Cannot find module 'some-npm-module'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at repl:1:12
    at realRunInThisContextScript (vm.js:22:35)
    at sigintHandlersWrap (vm.js:98:12)
    at ContextifyScript.Script.runInThisContext (vm.js:24:12)
    at REPLServer.defaultEval (repl.js:313:29)
    at bound (domain.js:280:14)

核心節點模塊確實可以正常工作。 以下不會產生任何錯誤:

const http = require('http');

為什么會這樣? 我是否正確安裝模塊?

請注意,在這種情況下,我需要在終端中而不是在某個項目中使用npm模塊。

根據文檔 ,僅當您計划在命令行上調用模塊時,才應在全局安裝模塊:

如果要將其用作命令行工具(如grunt CLI),則需要在全局安裝它。 另一方面,如果您想使用Node的require之類的東西依賴您自己模塊中的軟件包,那么您想在本地安裝。

這是因為require()不在全局模塊目錄中查找,因此,如果在該目錄中安裝了some-npm-module ,它將永遠找不到。

使用npm install some-npm-module在本地npm install some-npm-module應該可以解決您的問題,並允許您向REPL提出要求(只要您從同一目錄一致地運行REPL)。

請刪除整個node_modules文件夾並重新安裝

  • rm -rf node_modules

  • npm安裝

全局安裝npm模塊后,要在當前項目/目錄中使用它,只需鏈接它即可。

npm鏈接module_name

它應該工作。

暫無
暫無

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

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