我正在尝试创建一些我可以导入的类,以便在我的项目中使用,但是我实际上在导入我正在制作的模块时遇到了一些麻烦。
我的文件结构如下所示:
├╴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
机制发生冲突。仍然没有变化。
有关修复此问题的任何帮助吗?
更新它似乎在我的main.js
文件中工作。
答案 0 :(得分:2)
嗯,通过脚本标记包含的 index.js 将其当前位置解析为包含HTML代码的位置。因此,要获得 participant.js ,根据您的文件夹结构,您必须使用require('../js/participant.js')
。这仅使用<script>
标记影响HTML页面中包含的脚本。所有其他require
将按预期工作。