electron使用rollup打包后,运行报错Could not dynamically require……

这篇具有很好参考价值的文章主要介绍了electron使用rollup打包后,运行报错Could not dynamically require……。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

同学们可以私信我加入学习群!



分析

这报错信息意思是rollup不支持动态的require,全部报错信息为:

Could not dynamically require “./src/cat”. Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work

打开软件时,报错如图:
electron使用rollup打包后,运行报错Could not dynamically require……,electron桌面端,electron,javascript,前端

这是我在electron项目中引入shelljs插件时引发的报错,引入方式为静态引入,但是有可能shelljs中存在动态引入,所以rollup打包时会报错无法支持动态引入的方式。


解决

可能会有很多种方式解决这个问题,我采用最方便的方式,将有问题的模块排除在外,让打包后的代码在运行时直接从node_modules中加载模块,一劳永逸。

简单而言,就是在vite或者rollup中配置external参数。如:

external:[
        "electron",
        "shelljs"
    ]

看过前面我对rollup打包electron的介绍应该知道,我以脚本的方式加载了对rollup定制化的一些参数,我的rollup脚本是“rollup.config.main.js”,这里的参数会覆盖vite.config.js中的参数,所以我如果在vite.config.js中配置external会无效。

如果各位同学所有的rollup参数都在vite.config.js中配置或者以插件的方式引入vite.config.js,那就不用考虑覆盖的问题。这个视情况而定。


总结

以后在electron的主进程中引入插件可能还会遇到这个问题,到时候统一使用这种方式排除模块即可。node版本管理可视化工具马上就要完成了,有兴趣的小伙伴可以提前关注一波。文章来源地址https://www.toymoban.com/news/detail-813129.html

到了这里,关于electron使用rollup打包后,运行报错Could not dynamically require……的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity 报错之 打包安卓闪退 Could not allocate memory: System out of memory

    更换机器打包,打包机器上没有开发使用的Unity版本,所以更换了Unity2019.4.8f1版本进行导出安卓工程,在安卓工程中打包出现闪退问题。 Unity: Could not allocate memory: System out of memory! Trying to allocate: 4227858432B with 16 alignment. MemoryLabel: DynamicArray Allocation happened at: Line:78 in Memory overv

    2024年02月13日
    浏览(40)
  • JAVA运行时类存在,但是报错:NoClassDefFoundError: Could not initialize class

    我们在部署代码时,明明类存在,但是发现报错:NoClassDefFoundError: Could not initialize class。 这类问题是由静态成员或静态初始化语句块引起。 我们先看下面个类: 执行结果: 分析其中的原因:我们通过debug模式调试,可以看到logger=null。 结论:成员变量的初始化顺序导致log

    2024年02月02日
    浏览(38)
  • 解决Flutter运行报错Could not run build/ios/iphoneos/Runner.app

    更新了IOS的系统版本为最新的17.0, 运行报以下错误 在网上上到一种方法 试一下发现不是一样的问题。 最后在stackoverflow上找到解决办法=链接地址 根本原因是IOS17和Xcode的配置变化引起的,需要更新Flutter的SDK版本到3.13以上就可以解决。 在命令行中使用 flutter upgrade 来更新Flu

    2024年02月02日
    浏览(52)
  • rollup 打包vue3组件库报错 ‘createElementVNode‘ is not exported by node\_modules\\vue\\dist\\vue.runtime.esm

    在这里插入图片描述 报错意思就是说 createElementVNode 没有被导出。也就是找不到。然后看下面 1: import { renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, renderList as _renderList, Fragment as _Fragmen

    2024年02月03日
    浏览(35)
  • 使用npx electron-forge import命令时报错Could not find git in environment的解决方法

    准备使用Electron Forge​打包项目文件时(打包您的应用程序 | Electron)可能会遇到以下错误:  解决方法:在git的官网(Git for Windows)上下载安装git,然后在git bash的窗体中运行命令即可。 (git的官网)  git下载安装完成后会自动启动git bash,在其中输入并执行命令npx electron

    2024年02月06日
    浏览(33)
  • 记录AS运行Flutter项目,运行报错: Could not get unknown property ‘android‘ for project ‘:app‘ of type org.gradle

    1.问题: 由于要学习Flutter,搭建好Flutter各种环境配置后,android studio创建一个Flutter项目,编译运行后报错:Could not get unknown property \\\'android\\\' for project \\\':app\\\' of type org.gradle。刚开始以为是Flutter SDK 没有配置好,但是运行flutter doctor命令是OK的。网上查了很久才怀疑是项目中gradle版

    2024年02月03日
    浏览(55)
  • electron 运行以及打包超时解决方法

    背景 我是通过vue add 的方式去添加electron相关依赖的,然后会在package.json中,自动生成运行和打包electron的命令 \\\"electron:serve\\\": \\\"vue-cli-service electron:serve\\\", 和 \\\"electron:build\\\": \\\"vue-cli-service electron:build\\\" ,运行electron,直接执行 yarn electron:serve , 打包直接执行 yarn electron:build 运行过程中

    2024年02月12日
    浏览(27)
  • VS2022 IIS Express运行报错:Could not load file or assembly ‘xxxx‘ or one of its dependencies.

    问题描述:VS2017,VS2019默认使用32位的IIS Express运行应用程序。但VS2022默认启用64位的IIS Express。如果项目中有dll必须运行在32位下,就会造成标题所示的错误。 解决办法:VS2022中工具=》选项=》项目与方案=》Web项目下将“使用64位的IIS Express”选项勾掉就可以了。  

    2024年02月13日
    浏览(58)
  • 解决:Could not load dynamic library ‘cudart64_110.dll’; dlerror: cudart64_110.dll not found

    在使用之前的代码时,报错: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library ‘cudart64_110.dll’; dlerror: cudart64_110.dll not found I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. import tensorflow.contrib.layers as

    2024年02月04日
    浏览(29)
  • rollup打包js库 占位符替换成文件名和行号输出日志中定位报错位置

    问题:在打包的js库中有很多日志或者error的控制台输出,但是打包后的js调用报错后无法从控制台看到堆栈信息,无法定位报错的位置是在哪个文件的哪一行 需求:能够从报错中观察到报错在哪个文件的那一行,便于排查错误 实现:自定义插件来实现此功能 思路:在打包时

    2024年02月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包