上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

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

guduadmin403月前

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


正文开始

  • 分析
  • 解决
  • 总结

    分析

    这报错信息意思是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……,在这里插入图片描述,第1张

    这是我在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版本管理可视化工具马上就要完成了,有兴趣的小伙伴可以提前关注一波。

网友评论

搜索
最新文章
热门文章
热门标签
 
 单身的人梦见有人喜欢自己  梦见别人生小孩我抱着  梦见猫爬到身上甩不掉