我通过以下方式在项目 A 中创建了一个 CommonJS 模块:const { WebElement } = require('selenium-webdriver');const { By } = require('selenium-webdriver');class VlElement extends WebElement { constructor(driver, selector) { ... } async getClassList() { ... }}module.exports = VlElement;在项目 BI 中使用以下代码:const VlElement = require('projectA');class VlButton extends VlElement { constructor(driver, selector) { super(driver, selector); } ...}module.exports = VlButton;运行代码时,找不到 VLElemlent。它在我的里面package.json,我可以在projectB > node_modules > projectA. 我的出口做错了什么?
1 回答
莫回无
TA贡献1865条经验 获得超7个赞
确保你有一个projectB/mode_modules/package.jsonwithmain指向定义/导出的文件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'),
};
添加回答
举报
0/150
提交
取消
