首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电子: ES模块的要求()

电子: ES模块的要求()
EN

Stack Overflow用户
提问于 2022-04-14 01:42:59
回答 2查看 1.3K关注 0票数 0

我第一次尝试制作一个简单的应用程序,但是每当我试图导入任何npm包时,我都会收到这个错误。我不知道我做错了什么,因为我使用的是npm包electron-reload,而这并没有抛出任何错误。

ERROR: ES模块要求()

这是我的tsconfig.json:

代码语言:javascript
复制
{
  "compilerOptions": {
    "target": "ES5",                                 
    "module": "CommonJS",                              
    "outDir": "./app/js/",                                   
    "esModuleInterop": true,                             
    "forceConsistentCasingInFileNames": true,
    "strict": true,                                      
    "skipLibCheck": true,                                
  },
  "exclude": ["./app/js/**/*.js"],
  "compileOnSave": true
}

这是抛出错误的代码:

代码语言:javascript
复制
import Hwid from "hwid";

ipcMain.on("get-hwid", (event) => {
    console.log(Hwid());
});

最后,这是我的BroswerWindow代码:

代码语言:javascript
复制
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,我只想知道该做什么或者为什么这个错误会停止我的开发。我希望这个包能正常运行,但没有任何效果。

EN

回答 2

Stack Overflow用户

发布于 2022-04-14 03:51:01

hwid是一个ESM模块,您的tsconfig.json指定使用CommonJS编写模块,这是require()函数。tsc (或其他编译器)将您的import语句转换为require()调用,这在ESM中是不允许的(正如错误所述)。要么使用可能支持ESM的旧版本的hwid,要么将module更改为'es2020',将moduleResolution设置为'node'

票数 0
EN

Stack Overflow用户

发布于 2022-04-14 06:11:30

尝试:const Hwid = require('hwid')

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71865552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档