[英]Electron: require() of ES Module
我第一次尝试制作一个简单的应用程序,但是每当我尝试导入任何 npm package 时,我都会收到此错误。我不确定我做错了什么,因为我正在使用 npm package electron-reload
和那不会引发任何错误。
ERROR:
ES 模块的 require()
这是我的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 更喜欢它,我只是想知道该怎么做或者为什么这个错误会停止我的开发。 我希望 package 能正常运行,但没有任何效果。
hwid
是一个ESM 模块,您的tsconfig.json
指定使用 CommonJS 编写模块,即require()
tsc
(或其他编译器)将您的import
语句转换为require()
调用,ESM 不允许这样做(因为错误说)。 使用可能支持 ESM 的旧版本hwid
或将module
更改为'es2020'
并将moduleResolution
设置为'node'
。
放一个入口索引。 cjs代码import('./index.js')
和 package.json 你已经可以添加"type": "module"
。
尝试: const Hwid = require('hwid')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.