如何在deno.json的不同任务间共享Flags以减少重复?
减少Deno任务配置重复的方法
针对你遇到的deno.json任务里权限Flags重复的问题,有两种实用方法可以简化配置:
方法一:用vars定义共享变量
在deno.json里新增vars字段,把重复的权限Flags、入口文件这类公共内容抽成变量,然后在任务里通过${变量名}引用:
{ "vars": { "COMMON_PERM_FLAGS": "--allow-net --allow-env --allow-read --allow-write --allow-run --cert certs/cert.pem", "ENTRY_FILE": "src/main.ts" }, "tasks": { "start": "deno run ${COMMON_PERM_FLAGS} ${ENTRY_FILE}", "watch": "deno run ${COMMON_PERM_FLAGS} --watch ${ENTRY_FILE}", "build": "deno compile --output dist/thing.exe ${COMMON_PERM_FLAGS} ${ENTRY_FILE}" } }
后续要修改权限或入口文件,只需要在vars里改一次就行,不用逐个任务调整。
方法二:嵌套任务复用基础配置
如果只是run相关的任务(比如start和watch)重复,可以先定义一个基础任务,其他任务直接调用它:
{ "tasks": { "base:run": "deno run --allow-net --allow-env --allow-read --allow-write --allow-run --cert certs/cert.pem", "start": "${base:run} src/main.ts", "watch": "${base:run} --watch src/main.ts", "build": "deno compile --output dist/thing.exe --allow-net --allow-env --allow-read --allow-write --allow-run --cert certs/cert.pem src/main.ts" } }
不过这种方法对compile任务不太适用,因为它和run是不同的命令,所以方法一的通用性更强。
目前Deno确实没有专门的全局权限配置项能直接应用到所有任务,用变量抽离是最简便的解决方案。
内容的提问来源于stack exchange,提问作者brunnerh
相关产品推荐
相关产品推荐

