在玩 Deno 时,我经常发现自己至少输入了两个或三个权限选项:
deno run --allow-net --allow-read --allow-env app.ts
有一种方法可以逃避显式权限。
在玩 Deno 时,我经常发现自己至少输入了两个或三个权限选项:
deno run --allow-net --allow-read --allow-env 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
-A
允许所有权限是一个不错的选择。
deno run -A app.ts
重要提示:这是不安全的,只能用于实验。
在开发实际应用程序时,更喜欢显式权限。
我创建了一个旨在帮助解决此问题的工具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
您可以使用天龙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 以获取更多信息。