yarn add <路径到本地包> --offline不安装依赖项

时间:2019-10-30 12:27:50

标签: npm yarnpkg offline-mode

我在非常受限的环境中工作,这意味着我无法访问互联网。我设置了所有内容,以导入Angular模板项目并从脱机缓存中安装所有软件包。我按照以下步骤操作:

在在线计算机上

  1. 配置yarn-offline-mirror,将其修剪为false(目录 X

  2. 使用ng new foo --skipInstall=true

  3. 创建一个新的角度应用程序
  4. 使用yarn (install)安装软件包,以生成 yarn.lock 并将所有tgz软件包存储在目录 X 中p>

  5. 删除 node_modules

  6. 每当我需要更多软件包时,我都使用npm-package-downloader和参数-d将所有依赖项也下载为tgz文件,并将其复制到目录 X 中。

在我的离线计算机上

  1. 我从目录 X 导入tgz文件,并将它们放在相同的位置
  2. 我像在在线计算机上一样配置yarn-offline-mirror
  3. 我导入角度模板并先安装yarn clean cache,再安装yarn --offline

只要所有的tgz-packages都在我的脱机计算机上,这就像一种魅力(由于 yarn.lock )。

我的问题

我想在离线计算机上添加更多软件包。这些程序包存在于脱机镜像中,因为我已将它们复制到了计算机上。当我跑步时

yarn clean cache
yarn add <absolute-path-to-tgz-package> --offline

出现两种可能的情况:

  1. 该程序包没有依赖性,在这种情况下它可以按预期工作
  2. 该软件包具有依赖关系:在这种情况下,每个“缺失”的依赖关系都会引发以下错误( package-name package-version 是占位符):
  

找不到与“ package-name”匹配的任何版本   缓存中的“ package-version”。这通常是由于缺少   锁定文件中的条目,运行不带--offline标志的Yarn可能   帮助解决问题。

据我了解,yarn需要以某种方式知道软件包需要哪些依赖关系。但是它必须知道,否则它将无法抛出此特定错误。所以我的问题是,如何强制yarn在目录 X 中查找依赖项?这些包在那里,因为我以各自的依赖关系下载了它们。显然,我不应该手动编辑 yarn.lock 。 yarn add的文档没有列出这样的选项(事实上,它甚至没有列出--offline标志)

0 个答案:

没有答案