2015-09-05 121 views
3

我正在使用Node.js作为项目。我安装WebdriverIO全球使用Node.js - 显示'MODULE_NOT_FOUND'的全局安装模块

npm install -g webdriverio

在我的文件中的一个,我有:

file.js

var webdriverio = require('webdriverio'); 

当这个文件被加载时,我得到了一个错误控制台说:

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

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

考虑到我安装了webdriverio全球,我不明白为什么我得到这个问题。

回答

2

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

2

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

npm install webdriverio 
3

Node.js的require看起来到本地文件夹node_modules

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

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

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

3

当你在全球范围安装,你应该然后去你的应用程序的根目录,并呼吁:

NPM链接webdriverio

PS无需NPM调用安装,因为你最终会具有这种模块的两个独立的装置,一个在全球,另一个在当地node_modules文件夹

+1

这应该是正确的答案;在不同的项目中多次安装它或者安装两次(全局和本地)是没有意义的, –

0

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

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