我正在将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,我不明白为什么我会遇到这个问题。
答案 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');