Deno 允许所有权限

Deno allow all permissions

我经常发现自己在玩 Deno 时至少输入两个或三个权限选项:

deno run --allow-net --allow-read --allow-env app.ts

有一种方法可以逃避显式权限。

有一个很好的选项-A允许所有权限。

deno run -A app.ts

重要提示:这是不安全的,应该仅用于实验。

开发实际应用程序时更喜欢显式权限。

您可以使用:--allow-all 或短选项 -A 来允许所有权限。

请记住,它将包括以下所有权限:

--allow-env                    
    Allow environment access

--allow-hrtime                 
    Allow high resolution time measurement

--allow-net=<allow-net>        
    Allow network access

--allow-plugin                 
    Allow loading plugins

--allow-read=<allow-read>      
    Allow file system read access

--allow-run                    
    Allow running subprocesses

--allow-write=<allow-write>    
    Allow file system write access

我创建了一个工具来帮助解决这个问题https://github.com/BentoumiTech/denox/

您可以在 deno-workspace.yml 具有权限列表的文件中指定您的脚本

scripts:
  # "denox run start" will execute app.ts with --allow-net --allow-read --allow-env permissions
  start:
    file: app.ts
    deno_options:
      allow-net: true 
      allow-read: true
      allow-env: true

$ deno install -Af -n denox https://denopkg.com/BentoumiTech/denox/denox.ts

$ denox run start 将转换为 deno run --allow-net --allow-read --allow-env app.ts

它还支持所有其他 deno 选项

allow-all, allow-env, allow-hrtime, allow-net, allow-plugin, allow-read, allow-run,
allow-write, cached-only, cert, config, importmap, inspect, inspect-brk, lock, lock-write,
log-level, no-remote, quiet, reload, seed, unstable, v8-flags

你可以使用 denon https://deno.land/x/denon,是一个类似 nodemon 的工具。一个很棒的事情是它包含一个 denon.json ,您可以在其中添加属性 "allow": 作为数组并添加您想要的标志。

"allow": ["net", "read", "write"]

然后在终端中 运行 启动应用程序的脚本

denon start yourapp.ts

这将 运行:

deno run --allow-net --allow-read --allow-write yourapp.ts

现在,当您进行更改并保存时,它会再次 运行 它。

它还有其他很酷的属性可以添加,例如 "unstable": true。试一试并阅读 denon 的自述文件以了解更多信息。