繁体   English   中英

Electron: ES 模块的 require()

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM