【问题标题】:Deno allow all permissionsDeno 允许所有权限
【发布时间】:2020-09-04 18:41:15
【问题描述】:

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

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

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

【问题讨论】:

  • 在不到一分钟的时间内挑选一个热门话题并提出问题并自己回答所有问题是否是一种好习惯。??
  • @GuneshShanbhag 是的,事实上这是鼓励的:Can I answer my own question?
  • @GuneshShanbhag 我不会因为接受自己的答案而获得积分,这不是它的工作原理。请注意我发送给您的链接,并且在创建问题时可以选择立即回答。这是一种常见的社区做法。
  • 哦,好吧。希望您的回答对社区有所帮助。

标签: deno


【解决方案1】:

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

deno run -A app.ts

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

在开发真正的应用程序时更喜欢显式权限。

【讨论】:

    【解决方案2】:

    您可以使用:--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
    

    【讨论】:

      【解决方案3】:

      我创建了一个工具来帮助解决这个问题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
      

      【讨论】:

        【解决方案4】:

        你可以使用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 的 README 以了解更多信息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-01
          • 2020-08-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多