导入自定义CommonJS模块失败

破坏者

我通过以下方式在项目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,我可以在下面看到VLElement projectB > node_modules > projectA我的出口出了什么问题?

提前致谢。问候

麦可

确保您有一个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'),
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档