我通过以下方式在项目A中创建了CommonJS模块:
const { WebElement } = require('selenium-webdriver');
const { By } = require('selenium-webdriver');
class VlElement extends WebElement {
constructor(driver, selector) {
...
}
async getClassList() {
...
}
}
module.exports = VlElement;
在项目B中,我使用以下代码:
const VlElement = require('projectA');
class VlButton extends VlElement {
constructor(driver, selector) {
super(driver, selector);
}
...
}
module.exports = VlButton;
运行代码时,找不到VLElemlent。
它位于我的package.json
中,并且可以在projectB > node_modules > projectA
下看到VLElement。
我的出口出了什么问题?
先谢谢了。 问候
答案 0 :(得分:1)
确保您的projectB/mode_modules/package.json
和main
指向定义/导出VlElement
的文件,如下所示:
"main": "path/to/file/with/VlElement.js",
调用require('projectA');
时,必须将其解析为projectA中的文件,以便可以对其进行评估以(并返回)该文件的导出。 main
中的package.json
条目允许这样做(但默认为index.js
,因此,如果您使用的是package.json
,则可能不需要,但是应该拥有它无论如何)。
您可以具有多个具有不同导出功能的文件,但是请记住require('projectA');
仍然只能返回一件事,因此通常的做法是使用一个index.js
,其外观类似于:
module.exports = {
'something': require('./something.js'),
'otherthing': require('./otherthing.js'),
'etc': require('./etc.js'),
};