Node.js - 全局安装的模块显示'MODULE_NOT_FOUND'

时间:2015-09-05 14:43:02

标签: javascript node.js

我正在将Node.js用于项目。我使用

全局安装了WebdriverIO

npm install -g webdriverio

在我的一个档案中,我有:

file.js

var webdriverio = require('webdriverio');

当加载此文件时,我在控制台中收到错误消息:

Message:
    Cannot find module 'webdriverio'
Details:
    code: MODULE_NOT_FOUND

如果我注释掉var webdriverio = ...行,我的代码运行正常。

考虑到我在全球范围内安装了webdriverio,我不明白为什么我会遇到这个问题。

5 个答案:

答案 0 :(得分:4)

Node.js require查看本地node_modules文件夹。

检查此链接以了解如何从全局模块文件夹加载模块:

https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders

  

如果NODE_PATH环境变量设置为以冒号分隔的列表   绝对路径,然后节点将搜索这些路径的模块if   他们在其他地方找不到。 (注意:在Windows上,NODE_PATH是   用分号而不是冒号分隔。)

答案 1 :(得分:3)

您需要在本地为您的应用设置,在应用的根目录中运行npm install webdriverio

答案 2 :(得分:3)

当您全局安装时,您应该转到应用的根目录并致电:

  

npm link webdriverio

P.S。无需调用npm install,因为您最终会对此模块进行两次单独安装,一次在全局,另一次在本地node_modules文件夹中

答案 3 :(得分:2)

节点仅在node_modules个文件夹中查找模块(从当前文件夹开始,然后查看上面的文件夹)。为了使其工作,您还必须在本地安装此软件包。

npm install webdriverio

答案 4 :(得分:0)

您可以使用完整的全局路径:

const wdio = require('/usr/local/lib/node_modules/webdriverio');