与外部代码连接

    这个示例使用 URL 来导入一个断言库:

    尝试运行一下:

    对于这个程序,我们不需要提供 选项。当它访问网络时,Deno 运行时有着特殊权限来下载模块并缓存到磁盘。

    Deno 在一个特殊目录缓存了远程模块,该路径可以被 $DENO_DIR 指定,如果没有指定,默认为系统缓存目录。下一次运行这个程序时无需下载。如果这个程序没有改动,它不会被再次编译。

    系统缓存目录默认为:

    • Windows: %LOCALAPPDATA%/deno (%LOCALAPPDATA% = )
    • macOS: $HOME/Library/Caches/deno

    只需在 URL 中指定版本。举个例子,这个 URL 指定了要运行的版本 https://unpkg.com/liltest@0.0.5/dist/liltest.js

    解决办法是在一个中心化的 deps.ts 中重新导出所依赖的外部库,它和 Node 的 package.json 具有相同的作用。

    举个例子,您正在一个大型项目中使用一个断言库,您可以创建一个 文件来导出第三方代码,而不是到处导入 "https://deno.land/std/testing/asserts.ts"

    这种设计避免了由包管理软件、集中的代码存储库和多余的文件格式所产生的大量复杂性。

    使用 --lock 命令行选项,通过一个锁文件 (lock file),您可以确保从一个 URL 下载的代码和初始开发时一样。更多信息请看 。

    像上面一样,这是 任何 远程依赖系统都要面对的问题。

    依赖外部服务在开发时很方便,但在生产环境很脆弱。生产级软件总是应该打包 (vendor) 所有依赖。

    在 Node 中,这需要将 node_modules 检入版本控制系统。