//导出class test.js
class TEST{
constructor() {}
init() {
console.log("sb");
}
}
module.exports = TEST;
//使用TEST
const TEST= require("./test.js");
let sb=new TEST();
webpack4打包TEST.js后再引入,报 TEST is not a constructor.
这是什么原因?webpack打包test.js文件后就用不了,没打包时就可以用。
参考GPT和自己的思路:
这个问题可能是因为webpack4默认使用严格模式(strict mode)来打包代码,而严格模式下会禁止隐式的全局变量声明。在你的代码中,你使用了与导出的类名Test完全相同的变量名Test来接收引入的类,这可能会产生冲突。
为了确保打包后的代码能够正常使用,你可以尝试将你的代码改为以下形式:
//导出class test.js
class Test{
constructor() {}
init() {
console.log("sb");
}
}
module.exports = Test;
//使用Test
const TestClass = require("./test.js");
let sb = new TestClass();
将接收类的变量名改为不同的名称可以避免变量名的冲突。