无法请求全局模块

时间:2016-03-22 15:36:40

标签: node.js npm

我在全局安装了两个模块,分别是discord.js和request。当我做npm list -g时,我似乎在那里。当我转到我的项目文件夹并启动命令提示符时,我输入node app.js并说它找不到discord.js,为什么会这样?我刚刚重新安装了Windows,这在重新安装之前完美运行。

2 个答案:

答案 0 :(得分:0)

显然我必须npm install --save <module name>

即使这是我的问题的答案,有人可以回答为什么这样做吗?

答案 1 :(得分:0)

运行npm list -g时,您将获得全局安装的模块列表,而不是当前安装的项目中的模块。

全局安装的模块位于/usr/local/lib/node_modules之类,而本地安装的模块位于/your_project/node_modules

npm的{​​{1}}文档(在您的情况下为别名npm ls -g):

  

<强>全球

     
      
  • 默认值:false

  •   
  • 类型:布尔值

  •   
     

列出全局安装前缀而不是当前项目中的包。

Node.js npm list -g不会查看全局require文件夹,只查看本地node_modules文件夹。

您可以将全局node_modules文件夹添加到node_modules环境变量,也可以使用NODE_PATH安装,而不使用npm install标记。运行-g时,将模块安装在当前项目的npm install --save <module name>文件夹中,这样可以使项目正常运行。