我有一个JS文件,我导入到我的电子的“主”(或后台进程)app.js,使用require(例如:const myJS = require("./pathToMyJS/myJS");)内容myJS.js:module.exports = { mFunc: function mFunc(param1) { ... }};我可以用mFunc在app.js作为myJS.mFunc(param1);与一切的伟大。然后,我尝试对“ renderer ” JS遵循相同的过程。因此,我renderer.js现在导入了const myOtherJS = require("./myJS/myOtherJS");另一个JS文件,该文件遵循与完全相同的module.exports逻辑myJS。根HTML(app.html)声明renderer为<script defer src="./renderer/renderer.js"></script>。但是在启动时,我得到:Uncaught TypeError: Cannot set property 'exports' of undefinedat renderer.js? [sm]:34在网上搜索时,我遇到了这个答案,其中提到可以使用AMD方式而不是commonJS方式。因此,我尝试了以下操作:(不确定这在语法上是否正确!)define( ["renderer"],function rFunc(param1) { ... })但这失败了:Uncaught ReferenceError: define is not defined那么在渲染器中使用要导出的功能时定义的正确方法是什么?到目前为止,我所做的只是将函数写入自己的JS文件(例如function func1() { ...}:),并在app.htmlas中声明所有这些文件<script defer src="./funcFile1.js"></script>。
2 回答

尚方宝剑之说
TA贡献1788条经验 获得超4个赞
原来,我只是导出错误。modules.export是失败的原因,modules在上没有定义renderer。
相反,如果我执行以下操作导出单个功能:
// ./myJS/myOtherJS.js
export function rFunc() { ...}
然后导入到我的renderer.js喜欢:
import { rFunc } from './myJS/myOtherJS';
rFunc();
事情按我最初的预期进行。
这份有关模块的Google Developers Primer对理解概念很有用。
添加回答
举报
0/150
提交
取消