You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地安装自定义npm包报'require is not defined'错误,npm/git方式正常

解决本地安装fork版abcjs到Svelte(Vite)项目出现'require is not defined'的问题

以下是针对你遇到问题的具体排查和解决步骤:

  • 先确认fork包是否完成构建
    你只在子模块执行了npm install,但很多npm包需要执行构建命令生成浏览器兼容的ES模块代码。进入../dependencys/abcjs目录,执行npm run build,生成生产环境的编译文件后,再重新执行本地安装命令npm install ../dependencys/abcjs。

  • 检查fork包的package.json入口配置
    对比官方abcjs的package.json,确保你的fork版本里的module字段指向了ES模块格式的输出文件(比如dist/abcjs.esm.js),main字段如果是CommonJS格式也没关系,但module字段是Vite优先识别的入口,要是这个字段不存在或者指向的文件没构建出来,Vite就会读取未编译的CommonJS源码,导致浏览器端出现require未定义的错误。

  • 给Vite添加强制预编译配置
    如果上面两步没用,在项目的vite.config.js里添加以下配置,让Vite强制预编译本地安装的abcjs包:

    export default {
      optimizeDeps: {
        include: ['abcjs'],
        force: true
      }
    }
    

    这样Vite会把该包转化为浏览器可识别的模块格式,绕过CommonJS的require问题。

  • 清理缓存重新安装
    先执行npm uninstall abcjs,然后删除项目根目录的node_modules文件夹和package-lock.json文件,再重新执行npm install ../dependencys/abcjs,避免缓存残留导致的异常。

内容的提问来源于stack exchange,提问作者lokimidgard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 12:14:55