当前位置: 首页 > news >正文

electron 切换至esm

前言

好消息,经过不知道多少年的讨论。
electron@28.0.0开始(23.08.31),默认支持esm了。

see

https://github.com/electron/electron/issues/21457

使用方法

  • 升级至electron@^28.0.0
  • 简单地在package.json中添加"type": "module"
  • 把所有.js 文件中的require, module.exports 改成 import from , export 语法。(除了preload.js)
  • 注意,esm的import语法中,文件后缀名.js不再能省略,必须显式提供。
  • 注意,esm中普通成员要用export { myFunc } 的方式提供。
  • 修复__filename__dirname缺失问题
import path from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename)

其他事项

应该知道,electron只是内置了esm包把esm模块转成了cjs,然后在node环境中执行。

所以 preload.js 还是在node环境中执行的,因此仍然采用require()语法。
也能使用__filename__dirname

http://www.lryc.cn/news/266343.html

相关文章:

  • 【新版】软考 - 系统架构设计师(总结笔记)
  • Spring MVC 方法中添加参数、HttpServletRequest 和 HttpServletResponse 对象
  • 单片机的RTC获取网络时间
  • Android 13 内置可卸载的搜狗输入法
  • 持续集成交付CICD:GitLabCI 封装Python类 并结合 ArgoCD 完成前端项目应用发布
  • 第十三章 常用类(Math 类、Arrays 类、System类、Biglnteger 和BigDecimal 类、日期类)
  • 2023年12月24日学习总结
  • 第26关 K8s日志收集揭秘:利用Log-pilot收集POD内业务日志文件
  • 芯科科技以卓越的企业发展和杰出的产品创新获得多项殊荣
  • 计算机视觉基础(11)——语义分割和实例分割
  • CNAS中兴新支点——什么是软件压力测试?软件压力测试工具和流程
  • jQuery: 整理3---操作元素的内容
  • 22、商城系统(四):项目jar包配置(重要),网关配置,商品服务基础数据设置
  • 循环链表的学习以及问题汇总
  • C++期末复习总结继承
  • CloudCanal x Debezium 打造实时数据流动新范式
  • Nodejs+Express搭建HTTPS服务
  • 设计模式之-策略模式,快速掌握策略模式,通俗易懂的讲解策略模式以及它的使用场景
  • 【leetcode100-019】【矩阵】螺旋矩阵
  • 【计算机视觉中的多视图几何系列】深入浅出理解针孔相机模型
  • 轻量级Python IDE使用(三)——函数
  • 计算机图形学理论(3):着色器编程
  • ubuntu20.04安装timeshift最新方法
  • 小狐狸ChatGPT付费创作系统小程序端开发工具提示打开显示无法打开页面解决办法
  • DQL-基本查询
  • 漏洞复现-红帆OA iorepsavexml.aspx文件上传漏洞(附漏洞检测脚本)
  • Leetcode 2976. Minimum Cost to Convert String I
  • ZKP Mathematical Building Blocks (2)
  • blender径向渐变材质-着色编辑器
  • 2023美团机器人研究院学术年会成功举办