在Deno Deploy部署Express应用时遇npm包找不到问题求助
解决Deno Deploy部署Express时的「Module not found」错误
针对你遇到的问题,可尝试以下几种解决方案:
指定Deno运行时版本
Deno Deploy默认运行时可能未更新到支持npm包的1.28+版本。在项目根目录创建deno.json文件,明确指定兼容版本:{ "denoVersion": "1.28.0" }调整Express监听端口
Deno Deploy不允许手动指定监听端口(如80),需改用环境变量获取分配的端口:import express from "npm:express@4.18.2"; const app = express(); app.get("/", (_req: any, res: any) => { res.send("Hello World!"); }); // 使用Deno Deploy分配的端口 app.listen(Deno.env.get("PORT") || 3000, () => { console.log("Server is running"); });使用Import Map管理依赖
改用import map声明npm依赖,避免npm:前缀可能的解析问题:- 创建
import_map.json文件:{ "imports": { "express": "npm:express@4.18.2" } } - 在
deno.json中关联import map:{ "importMap": "./import_map.json", "denoVersion": "1.28.0" } - 修改代码中的导入语句:
import express from "express";
- 创建
确认部署入口与命令
在Deno Deploy的部署设置中,确保入口文件路径正确,启动命令添加必要权限:deno run --allow-net src/server/index.ts
内容的提问来源于stack exchange,提问作者Karly
相关产品推荐
相关产品推荐

