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

如何在Sapper中使用mysql2库?导入mysql2时服务器崩溃如何解决

解决方案

错误原因

这个报错是Rollup打包时将仅可在Node.js服务端运行的mysql2识别为需要适配Svelte的前端模块,扫描其package.json的svelte字段失败导致的,mysql2本身仅用于服务端,不需要适配Svelte前端规则。

修复步骤

  • 第一步:修改项目根目录下的rollup.config.js,找到服务端打包配置块,在external配置项中添加mysql2及其子路径,排除Rollup对该依赖的打包处理:
// rollup.config.js 服务端配置段示例
export default {
  // 客户端配置省略
  server: {
    input: config.server.input(),
    output: config.server.output(),
    plugins: [/* 原有服务端插件保持不变 */],
    external: [
      // 原有external配置项内容保留,新增以下两行
      'mysql2',
      'mysql2/promise'
    ]
  }
}
  • (可选)如果后续新增其他服务端依赖频繁触发同类报错,可以安装rollup-plugin-node-externals插件自动排除所有node_modules中的服务端依赖,无需手动逐个添加:
    1. 安装依赖:
      npm install rollup-plugin-node-externals --save-dev
    2. 修改服务端插件配置:
    import nodeExternals from 'rollup-plugin-node-externals'
    
    server: {
      plugins: [
        nodeExternals(), // 放在服务端插件列表最开头
        // 原有其他插件保持不变
      ]
    }
    
  • 第二步:修改配置完成后重启Sapper开发服务器即可正常导入使用mysql2。

注意事项

不要在任何前端页面、Svelte组件中导入mysql2,仅可在后缀为.js/.ts的服务端API路由中导入该依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:45:05