我第一次尝试制作一个简单的应用程序,但是每当我试图导入任何npm包时,我都会收到这个错误。我不知道我做错了什么,因为我使用的是npm包electron-reload,而这并没有抛出任何错误。
ERROR: ES模块要求()
这是我的tsconfig.json:
{
"compilerOptions": {
"target": "ES5",
"module": "CommonJS",
"outDir": "./app/js/",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true,
},
"exclude": ["./app/js/**/*.js"],
"compileOnSave": true
}这是抛出错误的代码:
import Hwid from "hwid";
ipcMain.on("get-hwid", (event) => {
console.log(Hwid());
});最后,这是我的BroswerWindow代码:
const window = new BrowserWindow({
width: 700,
frame: false,
height: 700,
resizable: false,
transparent: true,
roundedCorners: true,
icon: path.join(__dirname, "../design/imgs/dully_logo.png"),
webPreferences: {
contextIsolation: false,
nodeIntegration: true,
preload: path.join(__dirname, "preload.js"),
devTools: false,
},
});
window.loadFile(path.join(__dirname, "../design/index.html"));我使用TypeScript是因为我更喜欢它而不是普通的JS,我只想知道该做什么或者为什么这个错误会停止我的开发。我希望这个包能正常运行,但没有任何效果。
发布于 2022-04-14 03:51:01
hwid是一个ESM模块,您的tsconfig.json指定使用CommonJS编写模块,这是require()函数。tsc (或其他编译器)将您的import语句转换为require()调用,这在ESM中是不允许的(正如错误所述)。要么使用可能支持ESM的旧版本的hwid,要么将module更改为'es2020',将moduleResolution设置为'node'。
发布于 2022-04-14 06:11:30
尝试:const Hwid = require('hwid')
https://stackoverflow.com/questions/71865552
复制相似问题