ncc 动态require 被webpack的require替换的一些解决方法

是实际存在的一个业务问题,我们希望模块是动态加载的,而不是被直接打包的

  • 使用eval("require")处理

尽管不是很推荐,但是实际很有效,也是ncc 自己内部一些场景的玩法

module.exports = eval("require")("edgecommon");

  • 使用变量

将需要动态导入的模块使用变量引入,可以规避一些被替换的可能性

  • 检查是否使用了一些别的语法造成问题

这个是自己碰到的,比较怪,因为使用了一些新的js 语法,造成了问题,注意排错

  • 使用external 声明是外部的不应该合并

说明

实际目前来说eval("require") 似乎是有通用的解决方法,尤其我们希望模块动态加载,而不是被打包到单一文件中

参考资料

https://github.com/vercel/ncc

https://github.com/vercel/ncc/issues/1190

posted on 2025-12-10 08:00  荣锋亮  阅读(3)  评论(0)    收藏  举报

导航