在Electron渲染器中导出/定义功能的正确方法

我有一个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 undefined

at 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>。


ITMISS
浏览 298回答 2
2回答

尚方宝剑之说

原来,我只是导出错误。modules.export是失败的原因,modules在上没有定义renderer。相反,如果我执行以下操作导出单个功能:// ./myJS/myOtherJS.jsexport function rFunc() { ...}然后导入到我的renderer.js喜欢:import { rFunc } from './myJS/myOtherJS';rFunc();事情按我最初的预期进行。这份有关模块的Google Developers Primer对理解概念很有用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript