[英]Replacing JS require('...') with ESM imports
將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');
通常,您會像使用fs
和其他 ES 模塊一樣執行此操作:
import { app, session, BrowserWindow } from "electron";
但是,我不相信您可以直接使用 Electron 執行此操作,因為它是CommonJS 模塊,並非所有模塊都直接命名為導出。
但是,您應該能夠通過默認導入導入所需的內容:
import electron from "electron";
const { app, session, BrowserWindow } = electron;
您需要將包名稱替換為變量或帶有括號的函數
import { app, session, BrowserWindow } from "electron";
這肯定會奏效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.