如何在全球范围内安装npm模块?

我已经在全局安装了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'); 

为什么会发生? 我正确安装模块吗?

请注意,在这种情况下,我需要在terminal中使用npm模块,而不是在某个项目中。

根据文档 ,如果您打算在命令行上调用它们,则应该只在全局安装模块:

如果你想用它作为命令行工具,像grunt CLI,那么你想要全局安装它。 另一方面,如果你想依靠你自己的模块使用像Node的要求那样的包,那么你想在本地安装。

这是因为require()不会在全局模块目录中查找,所以如果它安装在那里,它永远不会findsome-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

它应该工作。