Javascript 如何从包含对象列表的文件中导出对象,并在另一个文件中导入相同的对象以使用它?

Javascript 如何从包含对象列表的文件中导出对象,并在另一个文件中导入相同的对象以使用它?,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,如何从包含对象列表的文件中导出对象,并在另一个文件中导入相同的对象,以便能够使用它 //源文件示例 const obj1 = { element1: { property1: value1, property2: value2, property3: value3}, element2: { property1: value1, property2: value2, property3: value3}, element3: { property1: value1, property

如何从包含对象列表的文件中导出对象,并在另一个文件中导入相同的对象,以便能够使用它

//源文件示例

const obj1 = {
  element1: { property1: value1, property2: value2, property3: value3},
  element2: { property1: value1, property2: value2, property3: value3},
  element3: { property1: value1, property2: value2, property3: value3},
  element4: { property1: value1, property2: value2, property3: value3},
  element5: { property1: value1, property2: value2, property3: value3},
}

const obj2 = {
  element1: { property1: value1, property2: value2, property3: value3},
  element2: { property1: value1, property2: value2, property3: value3},
  element3: { property1: value1, property2: value2, property3: value3},
  element4: { property1: value1, property2: value2, property3: value3},
  element5: { property1: value1, property2: value2, property3: value3},
}

export ????
'use strict';
import ???

console.log(importedObject);
//从源文件导入主文件的示例

const obj1 = {
  element1: { property1: value1, property2: value2, property3: value3},
  element2: { property1: value1, property2: value2, property3: value3},
  element3: { property1: value1, property2: value2, property3: value3},
  element4: { property1: value1, property2: value2, property3: value3},
  element5: { property1: value1, property2: value2, property3: value3},
}

const obj2 = {
  element1: { property1: value1, property2: value2, property3: value3},
  element2: { property1: value1, property2: value2, property3: value3},
  element3: { property1: value1, property2: value2, property3: value3},
  element4: { property1: value1, property2: value2, property3: value3},
  element5: { property1: value1, property2: value2, property3: value3},
}

export ????
'use strict';
import ???

console.log(importedObject);
使用ES6静态命名/(ES6模块)语法:

/file-a.js

const obj1 = {
  element1: { property1: value1, property2: value2, property3: value3},
  element2: { property1: value1, property2: value2, property3: value3},
  element3: { property1: value1, property2: value2, property3: value3},
  element4: { property1: value1, property2: value2, property3: value3},
  element5: { property1: value1, property2: value2, property3: value3}
}

const obj2 = {
  element1: { property1: value1, property2: value2, property3: value3},
  element2: { property1: value1, property2: value2, property3: value3},
  element3: { property1: value1, property2: value2, property3: value3},
  element4: { property1: value1, property2: value2, property3: value3},
  element5: { property1: value1, property2: value2, property3: value3}
}

export {obj1, obj2};
import {obj1, obj2} from './file-a.js';

console.log(obj1);
console.log(obj2);
/file-b.js

const obj1 = {
  element1: { property1: value1, property2: value2, property3: value3},
  element2: { property1: value1, property2: value2, property3: value3},
  element3: { property1: value1, property2: value2, property3: value3},
  element4: { property1: value1, property2: value2, property3: value3},
  element5: { property1: value1, property2: value2, property3: value3}
}

const obj2 = {
  element1: { property1: value1, property2: value2, property3: value3},
  element2: { property1: value1, property2: value2, property3: value3},
  element3: { property1: value1, property2: value2, property3: value3},
  element4: { property1: value1, property2: value2, property3: value3},
  element5: { property1: value1, property2: value2, property3: value3}
}

export {obj1, obj2};
import {obj1, obj2} from './file-a.js';

console.log(obj1);
console.log(obj2);

您的环境是NodeJS吗?您有配置的构建过程吗?是的,简单的NodeJ,源文件服务于对象列表,其中另一个文件将从该源文件仅导入几个对象。它给出了:SyntaxError:无法在模块外使用导入语句。我不知道为什么…是的,因为ES6模块支持最近才添加。您有两个选项:向
包.json
文件添加
“type”:“module”
,或者重命名文件以使用
.mjs
扩展名而不是
.js
。其他选择包括传输代码(参见BabelJS)或不使用ES6模块(不推荐)。如果问题仍然存在,请尝试更新
包.json中的Node.Added
“type”:“module”
,并解决了问题!非常感谢!:)