我正在尝试进行一些可以在项目中使用的类,但是我在实际导入正在制作的模块时遇到了一些麻烦。
我的文件结构看起来像这样:
├╴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将按预期工作。