权限

为 Lume 配置 Deno 的权限

Deno 有一个权限系统,允许配置对不同 API 的访问,例如环境变量、文件系统读写、网络访问等等。 更多信息请参阅 Deno 权限手册

Lume 默认使用 -A 标志 (或 --allow-all) 执行,允许所有权限。在 deno.json 文件中生成的 Lume 任务使用以下脚本来运行 Lume:

{
  "importMap": "import_map.json",
  "tasks": {
    "lume": "echo \"import 'lume/cli.ts'\" | deno run -A -",
    "build": "deno task lume",
    "serve": "deno task lume -s"
  }
}

这个脚本会输出 import 'lume/cli.ts' 代码,然后执行它。这允许使用 import map 解析 lume/cli.ts 模块,因此可以通过编辑 import_map.json 文件来更新 Lume。

如果您担心授予 Lume 的权限并希望自定义它们,可以通过在 lume 任务中将 -A 标志替换为您所需的权限标志来实现。例如:

这是一个配置了一些权限的 Lume 任务示例:

{
  "importMap": "import_map.json",
  "tasks": {
    "lume": "echo \"import 'lume/cli.ts'\" | deno run --allow-net --allow-read=./ --allow-write=./_site -",
    "build": "deno task lume",
    "serve": "deno task lume -s"
  }
}