美文网首页deno
Deno 开发环境配置

Deno 开发环境配置

作者: RJ_Hwang | 来源:发表于2020-05-24 11:51 被阅读0次

    Deno 官方网站为 https://deno.land,v1.0.0 正式版于 2020-05-14 日发布。以下介绍的安装配置是完全绿化方式的安装。

    1. 下载 zip 安装包

    Deno 官方下载地址为 https://github.com/denoland/deno/releases,对应各平台的
    当前(2020-05-23)最新版 1.0.2 下载地址为:

    OS URL
    macOS https://github.com/denoland/deno/releases/download/v1.0.2/deno-x86_64-apple-darwin.zip
    Linux https://github.com/denoland/deno/releases/download/v1.0.2/deno-x86_64-unknown-linux-gnu.zip
    Windows https://github.com/denoland/deno/releases/download/v1.0.2/deno-x86_64-pc-windows-msvc.zip

    国内下载不了的,可以使用代理科学下载:

    $ curl -x http://$PROXY_HOST:$PROXY_PORT -LO $URL
    如:
    $ curl -x http://127.0.0.1:1081 -LO https://github.com/denoland/deno/releases/download/v1.0.2/deno-x86_64-apple-darwin.zip
    

    2. 解压安装

    安装目录随意,解压后将得到唯一的一个可执行文件:

    • macOS 和 Linux 平台是 deno
    • Windows 平台是 deno.exe

    Deno 承诺每次发布的版本都是单一的可执行文件,简单至上。如果是 macOS 或 Linux 平台,需要对解压后得到的 deno 可执行文件添加执行权限:

    $ chmod +x deno
    或者
    $ chmod 755 deno
    

    Deno 官方安装脚本默认行为:

    1. deno 可执行文件安装到 $HOME/.deno/bin/deno
    2. 设置环境变量 DENO_INSTALL=$HOME/.deno
    3. $DENO_INSTALL/bin 添加到 PATH 环境变量。

    3. 验证安装成功

    macOS 或 Linux:

    $ ./deno --version
    deno 1.0.2
    v8 8.4.300
    typescript 3.9.2
    

    Windows:

    > ./deno.exe --version
    deno 1.0.2
    v8 8.4.300
    typescript 3.9.2
    

    看到上述输出的版本号信息就证明 Deno 安装成功。

    4. 添加系统环境变量

    为了方便可以在终端直接使用 deno 命令,将可执行文件 deno(Windows 平台为 deno.exe)所在目录添加到系统环境变量 PATH(Windows 平台为 Path)中即可。

    Deno 下载的依赖和编译生成的文件默认缓存在环境变量 DENO_DIR 指定的目录下,如果未设置 DENO_DIR 环境变量,则默认为系统的缓存目录:

    • macOS: $HOME/Library/Caches/deno
    • Linux/Redox: $XDG_CACHE_HOME/deno$HOME/.cache/deno
    • Windows: %LOCALAPPDATA%/deno (%LOCALAPPDATA% = FOLDERID_LocalAppData),如 $HOME/AppData/Local/deno
    • 其它意外情况,使用 $HOME/.deno 代替

    See here。使用 deno info 命令也可以查看到相关信息。
    来自《官方参考文档/Setup your environment》。

    5. 升级

    执行如下命令即可:

    $ deno upgrade
    

    如果要使用代理来升级,则只需设置环境变量 HTTP_PROXYHTTPS_PROXY 为相应的代理地址即可。以下为 PowerShell 使用命令临时设置代理的例子:

    > $HTTP_PROXY = "http://127.0.0.1:10087"
    

    6. 官方 welcome.ts 例子

    执行如下脚本,是官方入门教程中最简单的例子:

    $ deno run https://deno.land/std/examples/welcome.ts
    Welcome to Deno 🦕
    

    其中 welcome.ts 的源码为:

    console.log("Welcome to Deno 🦕");
    

    执行上述脚本后,Deno 会从地址 https://deno.land/std/examples/welcome.ts 下载源码到 $DENO_DIR/deps/https/deno.land/8645fc194e64a260ce809466851e4586f3adac3e6090ba74445a4a223359becb,在此文件同级目录下有个文件 8645fc194e64a260ce809466851e4586f3adac3e6090ba74445a4a223359becb.metadata.json,记录了下载地址和 headers 信息,如:

    {
      "headers": {
        "x-cache": "HFM, HIT",
        "via": "1.1 varnish (Varnish/6.0), 1.1 varnish",
        "expires": "Sun, 24 May 2020 05:54:53 GMT",
        "etag": "W/\"6531bda307649347e4b7c8eb0dfc61ffd4518fdb8766060843124417e54cbd3f\"",
        "x-timer": "S1590299393.413330,VS0,VE290",
        "x-xss-protection": "1; mode=block",
        "cf-cache-status": "DYNAMIC",
        "vary": "Authorization,Accept-Encoding",
        "access-control-allow-origin": "*",
        "content-type": "application/typescript; charset=utf-8",
        "content-security-policy": "default-src 'none'; style-src 'unsafe-inline'; sandbox",
        "set-cookie": "__cfduid=d7373163313218def499fb566afe059461590299393; expires=Tue, 23-Jun-20 05:49:53 GMT; path=/; domain=.deno.land; HttpOnly; SameSite=Lax; Secure",
        "cf-ray": "5984bc688e82124c-HKG",
        "strict-transport-security": "max-age=31536000",
        "expect-ct": "max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\"",
        "x-cache-hits": "0, 1",
        "x-frame-options": "deny",
        "x-github-request-id": "6012:3CCF:200CA8:28C4FD:5EC9EDA5",
        "x-served-by": "cache-hkg17921-HKG",
        "server": "cloudflare",
        "cf-request-id": "02e6d415500000124cf302f200000001",
        "x-content-type-options": "nosniff",
        "x-deno-warning": "Implicitly using master branch https://deno.land/std/examples/welcome.ts",
        "x-fastly-request-id": "b999cc4788708ec8666da866861aa61c8933c4c0",
        "source-age": "0",
        "cache-control": "max-age=300",
        "date": "Sun, 24 May 2020 05:49:53 GMT"
      },
      "url": "https://deno.land/std/examples/welcome.ts"
    }
    

    welcome.ts 文件会编译为 js 文件保存为如下 3 个文件:

    $DENO_DIR/gen/https/deno.land/std/examples/
      |- welcome.ts.js
      |- welcome.ts.js.map
      |- welcome.ts.meta
    

    文件内容如下所示:

    $ cat welcome.ts.js
    "use strict";
    console.log("Welcome to Deno 🦕");
    //# sourceMappingURL=file://$DENO_DIR/gen/https/deno.land/std/examples/welcome.ts.js.map
    
    $ cat welcome.ts.js.map 
    {
      "version":3,
      "file":"file://$DENO_DIR/gen/https/deno.land/std/examples/welcome.ts.js",
      "sources":["https://deno.land/std/examples/welcome.ts"],
      "names":[],
      "mappings":";AAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC"
    }
    
    $ cat welcome.ts.meta 
    {
      "source_path": "$DENO_DIR/deps/https/deno.land/8645fc194e64a260ce809466851e4586f3adac3e6090ba74445a4a223359becb",
      "version_hash": "061c16e7765599f2afca7cf9fcc6b9cdf571d733adbe0af8068e1b1105298d6a"
    }
    

    文件内容做了相应格式化排版以方便查看,$DENO_DIR 为我自行改写的占位符,代替了实际的盘符路径。

    相关文章

      网友评论

        本文标题:Deno 开发环境配置

        本文链接:https://www.haomeiwen.com/subject/bxydahtx.html