美文网首页
4.2 完整性检查和锁定文件

4.2 完整性检查和锁定文件

作者: 9e8aeff1c70c | 来源:发表于2021-05-15 08:28 被阅读0次

介绍

假设您的模块依赖于远程模块https://some.url/a.ts.。当您第一次编译模块时,将检索、编译并缓存a.ts。它将一直保持这种方式,直到您在一台新机器上运行您的模块(比如在生产中)或重新加载缓存(例如通过Deno缓存--例如重新加载)。但是,如果远程URL https://some.url/a.ts中的内容发生更改,会发生什么情况呢?这可能会导致您的生产模块使用与本地模块不同的依赖项代码运行。Deno避免这种情况的解决方案是使用完整性检查和锁定文件。

缓存和锁定文件

Deno可以使用一个小的JSON文件存储和检查子资源完整性。使用--lock=lock.json启用并指定锁定文件检查。要更新或创建锁,请使用--lock=lock.json--lock-write。Lock=lock.json告诉Deno要使用的锁文件是什么,而--lock-write用于将依赖散列输出到锁文件(--lock-write必须与--lock结合使用)。

Lock.json可能如下所示,根据依赖关系存储文件的散列:

{
  "https://deno.land/std@0.95.0/textproto/mod.ts": "3118d7a42c03c242c5a49c2ad91c8396110e14acca1324e7aaefd31a999b71a4",
  "https://deno.land/std@0.95.0/io/util.ts": "ae133d310a0fdcf298cea7bc09a599c49acb616d34e148e263bcb02976f80dee",
  "https://deno.land/std@0.95.0/async/delay.ts": "35957d585a6e3dd87706858fb1d6b551cb278271b03f52c5a2cb70e65e00c26a",
   ...
}

典型的工作流程如下所示:

src/deps.ts

// Add a new dependency to "src/deps.ts", used somewhere else.
export { xyz } from "https://unpkg.com/xyz-lib@v0.9.0/lib.ts";

然后:

# Create/update the lock file "lock.json".
deno cache --lock=lock.json --lock-write src/deps.ts

# Include it when committing to source control.
git add -u lock.json
git commit -m "feat: Add support for xyz using xyz-lib"
git push

另一台机器的合作者 - 在一个新克隆的项目树:

# Download the project's dependencies into the machine's cache, integrity
# checking each resource.
deno cache --reload --lock=lock.json src/deps.ts

# Done! You can proceed safely.
deno test --allow-read src

运行时验证

与上面的缓存一样,您还可以在使用Deno run子命令期间使用--lock=lock.json选项,从而在运行期间验证任何锁定模块的完整性。请记住,这只针对之前添加到lock.json文件的依赖项进行验证。新的依赖项将被缓存,但不会进行验证。

您还可以进一步使用--cached-only标志来要求远程依赖项已经缓存。

Deno run--lock=lock.json--cached-only mod.ts
如果依赖关系树中存在尚未缓存的mod.ts依赖项,则此操作将失败。

相关文章

  • 4.2 完整性检查和锁定文件

    介绍 假设您的模块依赖于远程模块https://some.url/a.ts[https://some.url/a....

  • Hadoop-i/o操作

    一.数据完整性 数据检查:一般使用CRC -32方式检查数据完整性 1.对本地文件I/o的数据完整性检查 hdfs...

  • fsck tune2fs dumpe2fs

    fsck —— 检查文件系统数据完整性和自动修复错误 /etc/fstab文件中,在挂载选项后面的最后 一位有1或...

  • yarn VS npm

    yarn的进步 并行安装,速度较npm快 版本号锁定,完整性检查 缓存机制更好(已安装的包可离线安装)

  • MD5加密-md5sum命令

    在文件运输或储存中,可能由于磁盘问题和错误传输导致文件发生改变;因此,我们在文件的使用时需要检查文件的完整性。md...

  • Linux command

    电脑IP地址:ifconfig -a检查文件完整性:md5sum *gz各个文件大小:du -sh *剩余内存:d...

  • 【多线程优化】fastq文件MD5批量校验、批量解压、压缩处理脚

    目的: 检查从下机fastq.gz文件的完整性 可以只生成MD5文件,但不做检查 可以多线程批量解压fastq.g...

  • 数据库完整性

    DBMS中的完整性检查功能: 提供定义完整性约束条件的机制: 提供完整性检查的方法: 进行违约处理: 实体完整性:...

  • 如何检查bam文件的完整性?

      最近在跑程序的时候遇到一个问题,简直不要太坑,记录下来:   em.......看到这个的时候,也就意味着重跑...

  • nginx加固笔记!

    检查是否配置Nginx账号锁定策略。身份鉴别 检查Nginx进程启动账号。服务配置 确保NGINX配置文件权限为6...

网友评论

      本文标题:4.2 完整性检查和锁定文件

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