7

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

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

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

4

4 回答 4

16

您可以使用:--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
于 2020-05-18T21:00:48.307 回答
4

-A允许所有权限是一个不错的选择。

deno run -A app.ts

重要提示:这是不安全的,只能用于实验。

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

于 2020-05-18T20:34:23.943 回答
0

我创建了一个旨在帮助解决此问题的工具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
于 2020-05-20T07:54:08.693 回答
0

您可以使用天龙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 的 README 以获取更多信息。

于 2020-06-01T16:01:27.653 回答