Deno环境下如何获取drizzle-orm/libsql的正确导入地址?
解决Deno环境下Drizzle ORM libsql导入问题
正确导入方式
在Deno中搭配Turso(libsql)使用Drizzle时,需要指定libsql对应的模块子路径,而非从主包入口导入,以下是两种可行方案:
方案1:直接通过esm.sh指定子路径导入
import { drizzle } from "https://esm.sh/drizzle-orm/libsql"; import { createClient } from "https://esm.sh/@libsql/client";
esm.sh会自动适配npm模块到Deno环境,直接指定/libsql子路径即可获取对应导出,无需受IDE默认展示的postgres版本提示干扰。
方案2:通过import_map.json统一配置
在项目根目录创建import_map.json文件,写入以下配置:
{ "imports": { "drizzle-orm/libsql": "https://esm.sh/drizzle-orm/libsql", "@libsql/client": "https://esm.sh/@libsql/client" } }
启动Deno时添加--import-map import_map.json参数,就能在代码中直接按照官方文档的写法导入:
import { drizzle } from 'drizzle-orm/libsql';
常见误区说明
- deno.land/x分发的Drizzle包未单独拆分libsql导出,因此优先选择esm.sh的子路径导入方案,它支持npm包的子路径解析并适配Deno环境。
- 不要直接从
drizzle-orm主模块导入,该入口在Deno版本中默认仅包含postgres相关导出,libsql功能需通过子路径单独调用。
内容的提问来源于stack exchange,提问作者sander
相关产品推荐
相关产品推荐

