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

部署至Deno Deploy时遇TypeError: Deno.readFileSync未定义问题求助

Deno Deploy部署报错及Prisma环境变量读取问题解决

问题描述

部署项目到Deno Deploy时出现以下错误:

TypeError: Deno.readFileSync is not a function at parseFile (https://deno.land/x/dotenv@v3.2.2/mod.ts:100:59) at config (https://deno.land/x/dotenv@v3.2.2/mod.ts:41:18) at file:///src/src/controllers/users/getUsers.ts:2:19

已在Deno Deploy项目设置中配置全部环境变量,但Prisma仍无法读取数据库源的环境变量。

解决步骤

  • 弃用依赖文件系统的dotenv用法:Deno Deploy是无文件系统的边缘运行环境,不支持Deno.readFileSync这类本地文件操作。直接使用Deno内置的环境变量API获取值:
    替换原dotenv调用代码:

    // 原代码(会报错)
    import { config } from "https://deno.land/x/dotenv@v3.2.2/mod.ts";
    const env = config();
    

    改为:

    // 新代码
    const DATABASE_URL = Deno.env.get("DATABASE_URL");
    
  • 确保Prisma适配Deno环境:

    1. Prisma Schema中直接引用环境变量,不依赖本地.env文件:
      datasource db {
        provider = "postgresql" // 根据你的数据库类型调整
        url      = env("DATABASE_URL")
      }
      
    2. 验证Deno Deploy项目设置里的DATABASE_URL等环境变量拼写正确、值完整。
    3. 针对Deno环境生成Prisma客户端:
      执行命令:
      npx prisma generate --generator=client --runtime=deno
      
      确保生成的客户端文件包含在部署包中。
  • 清理代码中的本地dotenv依赖:检查所有代码文件,移除任何调用dotenv读取本地文件的逻辑,避免部署时触发不支持的操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:45:10