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

如何在Deno中强制指定std旧版本以解决0.202.0版本报错问题

强制Deno拉取指定旧版本std的方法

1. 显式在import语句指定版本号

你的代码里已经部分采用这种方式,比如:

import { readAllSync } from "https://deno.land/std@0.100.0/io/util.ts";
import { basename } from "https://deno.land/std@0.100.0/path/mod.ts";
import { MultipartWriter } from "https://deno.land/std@0.100.0/mime/multipart.ts";

确保所有引用Deno std的import URL都加上@<版本号>(比如@0.100.0),这样Deno会直接拉取对应版本,不会自动使用最新版。

2. 使用锁定文件固定所有依赖版本

如果担心间接依赖(比如你引入的第三方模块)偷偷拉取新版本std,可以用Deno的锁定文件:

  • 删除项目中已有的deno.lock文件(如果存在)
  • 运行命令生成锁定文件:
    deno cache --lock=deno.lock --lock-write mod.ts
    
    该命令会遍历所有依赖,把它们的具体版本哈希写入deno.lock
  • 之后运行项目时,加上--lock参数强制使用锁定版本:
    deno run --lock=deno.lock mod.ts
    

3. 清除缓存后重新拉取指定版本

如果之前缓存了新版本的std,需要先清除缓存再拉取旧版本:

deno cache --reload https://deno.land/std@0.100.0/io/util.ts https://deno.land/std@0.100.0/path/mod.ts https://deno.land/std@0.100.0/mime/multipart.ts

这个命令会强制重新下载指定版本的std模块,覆盖缓存里的新版本。

另外,检查你引入的第三方模块(比如bb64、docopt),如果它们的import URL没有指定版本号,最好也加上对应稳定版本的标签,避免自动更新带来的依赖问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:25:21