簡體   English   中英

用 ESM 導入替換 JS require('...')

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM