将 node-fetch
更新到 v3 后,尝试启动我的 Electron 应用程序时出现以下 JavaScript 错误消息:
未捕获的异常:错误 [ERR_REQUIRE_ESM]:不支持 ES 模块 (...) 的 require()。而是将所需的 ... 更改为动态 import() ...
const fs = require('fs');
和:
import fs from "fs";
但是如何以相同的方式替换以下内容?
// Modules to control application life and create native browser window
const {
app,
session,
BrowserWindow
} = require('electron');
回答1
通常,您会像使用 fs
和其他 ES 模块一样执行此操作:
import { app, session, BrowserWindow } from "electron";
但是,我认为您不能直接使用 Electron 执行此操作,因为它是一个 https://en.wikipedia.org/wiki/CommonJS 并且并非所有模块都直接命名为导出。
但是,您应该能够通过默认导入导入您需要的内容:
import electron from "electron";
const { app, session, BrowserWindow } = electron;
回答2
你需要用变量或函数替换包名称并用括号括起来
import { app, session, BrowserWindow } from "electron";
这肯定有效