不能要求来自Electron渲染器的自定义模块



我正在尝试进行一些可以在项目中使用的类,但是我在实际导入正在制作的模块时遇到了一些麻烦。

我的文件结构看起来像这样:

├╴main.js
└╴src/
   ├╴html/
   │  └╴index.html
   ├╴css/
   │  └╴index.css
   └╴js/
      ├╴index.js
      └╴participant.js

所有index.*文件彼此相关,因此具有相同的名称。

所讨论的麻烦制造者是index.js,我的index.html渲染器和participant.js

这是我得到的代码:

// index.js
const {Participant} = require("./participant");
const addNodeBtn = document.getElementById('add-node');
addNodeBtn.addEventListener('click', () => {
  // this is really just filler code to see if everything works
  let p = new Participant("Jason");
  alert(`His name was ${p.name}`);
});

// participant.js
"use strict";
var Participant = class {
  constructor(name) {
    this.name = name;
  }
}
module.exports.Participant = Participant;

无论出于何种原因,我一直遇到错误"找不到模块./participant"。

这是我尝试过的替代方法:

require("participant");
require("./participant.js");
module.exports = Participant;
module.exports.Participant = class { ... }

无济于事,所有这些都给我同样的错误。我什至将index.js重命名为其他东西,以为它正在与require机构发生冲突。仍然没有更改。

解决此问题的任何帮助?

Update 它似乎正在从我的main.js文件中使用。

好吧,事实证明 index.js 通过脚本标签包含在脚本标签中,将其当前位置解散到包括HTML代码的位置。因此,为了需要参与者。JS,鉴于您的文件夹结构,您必须使用require('../js/participant.js')。这仅影响使用<script>标签中HTML页面中包含的脚本。所有其他require的s将按预期工作。

相关内容

  • 没有找到相关文章

最新更新