sublime text 不能直接运行 deno,需配置构建系统调用 deno run 并显式传入权限参数(如 --allow-read),否则报 permissiondenied;推荐用 deno run --watch 热重载,但构建系统默认不支持后台进程,应配合 lsp 实现类型检查、格式化与模块缓存。

Deno 不能直接在 Sublime Text 里“运行”,它是个独立的命令行运行时,Sublime 只能帮你编辑、保存、再调用终端执行——但只要配置对了构建系统,体验几乎和 IDE 一样顺。
Sublime Text 怎么调用 deno run 执行 .ts 文件
Sublime 本身不解释 TypeScript,也不管理权限或缓存模块,它只负责把你的 mod.ts 交给 deno run。关键在于构建系统(Build System)是否正确拼出命令行。
- 必须显式传入权限参数,比如你读文件就得加
--allow-read,否则报错PermissionDenied: read access to "xxx", run again with the --allow-read flag - 推荐用
deno run --watch开发时热重载,但 Sublime 的构建系统默认不支持后台进程,所以建议只用deno run做单次执行,调试用终端更稳 -
"cmd"字段要写成数组形式:["deno", "run", "--allow-net", "--allow-env", "$file"],不能合并成字符串,否则空格会被当路径分隔符 - 如果提示
command not found: deno,不是没装 Deno,而是 Sublime 启动时没加载 shell 的 PATH;解决办法是改用"shell": true,并确保deno在系统全局可执行(如 macOS 加入/usr/local/bin,Windows 检查环境变量)
为什么 deno fmt / deno lint 在 Sublime 里不生效
因为 Sublime 默认不调用这些命令——它们不是编译器,而是 Deno 自带的格式化与检查工具,需要单独配置 LSP 或构建系统才能触发。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
-
deno fmt是格式化器,不是语法高亮器;Sublime 要靠插件(如 “Deno” 插件或 “LSP” + “lsp-deno”)监听保存事件后自动调用,否则只能手动在终端跑deno fmt mod.ts -
deno lint同理,它不阻断执行,只输出警告;若想保存即检查,得配 LSP,并在设置里开"lintOnSave": true - 别指望 Sublime 原生支持
@std/assert类型推导——类型信息来自 Deno 的 TS 编译器,必须通过 LSP 连接才能把assertEquals的参数类型显示出来
远程模块导入(比如 https://deno.land/std@0.224.0/http/server.ts)在 Sublime 里怎么不报错
Sublime 不解析 import,它只做文本编辑和构建触发;真正校验 URL 是否有效、模块是否存在、类型是否匹配,全靠 deno run 或 LSP 启动时拉取并缓存。
- 第一次 import 会卡顿几秒——那是 Deno 在下载并缓存模块到
$HOME/.cache/deno/deps/,Sublime 看不到这个过程,但终端会打印Download https://... - 如果 import 路径写错(比如版本号不存在),
deno run会直接退出并报错Cannot resolve module "https://deno.land/std@xyz/...",Sublime 构建系统只会原样输出这个错误 - 本地开发建议锁定版本,避免
https://deno.land/std/http/server.ts这种无版本写法——某天更新后 API 变更,Sublime 里看着没红波浪线,但运行就崩
权限控制(--allow-*)容易被忽略的细节
Deno 的安全模型不是开关,是精确到路径和协议的白名单,写错一个斜杠或少个 flag 就中断执行。
-
--allow-read默认允许读所有路径;但加路径限制后,比如--allow-read=./data,就不能读./config.json,哪怕它在同一级目录 -
--allow-net=api.example.com只放行该域名,连https://api.example.com/v1都合法,但http://api.example.com(HTTP)或api.example.com:8080(非默认端口)都会被拒 - 环境变量访问要用
--allow-env=NODE_ENV显式列出键名,写--allow-env全放开虽方便,但上线前务必删掉——这是生产环境最常漏掉的硬伤 - Sublime 构建系统里硬编码权限参数很危险:不同脚本需要的权限不同,
mod.ts可能只需--allow-net,而migrate.ts却要--allow-read --allow-write;建议用多个构建系统分别对应,或干脆放弃构建系统,用终端分场景执行
真正麻烦的从来不是写代码,而是搞清哪条命令该在哪种上下文里跑、带什么 flag、依赖谁缓存了什么模块——Deno 把这些决策权交还给你,Sublime 只是那个递锤子的人。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










