Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 导入自定义CommonJS模块失败_Javascript_Node.js - Fatal编程技术网

Javascript 导入自定义CommonJS模块失败

Javascript 导入自定义CommonJS模块失败,javascript,node.js,Javascript,Node.js,我通过以下方式在项目a中创建了CommonJS模块: const{WebElement}=require('selenium-webdriver'); const{By}=require('selenium-webdriver'); 类VlElement扩展了WebElement{ 构造函数(驱动程序、选择器){ ... } 异步getClassList(){ ... } } module.exports=VlElement; 在项目B中,我使用以下代码: const VlElement=re

我通过以下方式在项目a中创建了CommonJS模块:

const{WebElement}=require('selenium-webdriver');
const{By}=require('selenium-webdriver');
类VlElement扩展了WebElement{
构造函数(驱动程序、选择器){
...
}
异步getClassList(){
...
}
}
module.exports=VlElement;
在项目B中,我使用以下代码:

const VlElement=require('projectA');
类VlButton扩展VlElement{
构造函数(驱动程序、选择器){
超级(驱动器、选择器);
}
...
}
module.exports=VlButton;
运行代码时,找不到VLElemlent。 它在我的
package.json
中,我可以在
projectB>node\u modules>projectA
下看到VLElement。 我的出口产品出了什么问题

提前谢谢。
关于请确保您有一个
projectB/mode\u modules/package.json
和一个
main
指向定义/导出
VlElement
的文件,如下所示:

  "main": "path/to/file/with/VlElement.js",
当您调用
require('projectA')必须将其解析为projectA中的文件,以便对其进行评估(并返回)该文件的导出。
package.json
中的
main
条目允许这样做(但默认为
index.js
,因此如果您正在使用它,您可能不需要
package.json
,但无论如何都应该拥有它)

您可以有多个具有各种导出的文件,但请记住
require('projectA')
仍然只能返回一件事,因此通常的方法是使用一个
index.js
,它看起来像:

module.exports={
'something':require('./something.js'),
'otherthing':require('./otherthing.js'),
“etc”:require(“./etc.js”),
};

确保您有一个projectB/mode_modules/package.json,带有一个
main
,它指向定义/导出
VlElement
@Michael的文件,我没有,但我有多个文件需要导出。我需要制作一个index.js并导出其中所需的所有文件吗?这更复杂:)我给你写了一个答案。我不确定这是你的问题,但你应该知道这一点。