首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >yarn --prefer offline做什么?

yarn --prefer offline做什么?
EN

Stack Overflow用户
提问于 2017-05-01 01:24:45
回答 3查看 13.9K关注 0票数 15

我假设当我安装npm包时,第一次使用

代码语言:javascript
复制
yarn add react

这将在本地缓存中保存react文件。我发现.yarn-cache包含很多文件。我假设它是yarn本地缓存文件夹,这样当我将来再次安装react时,它将从本地缓存安装,不是吗??

如果将来我需要再次安装react,我是否应该简单地编写

代码语言:javascript
复制
yarn add react

代码语言:javascript
复制
yarn add react --prefer-offline
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-06 18:58:00

我的理解是,默认情况下,当你安装/恢复时,yarn总是会尝试从互联网上下载软件包,并将其存储在缓存中,这意味着在未来如果你尝试安装/恢复但没有互联网连接,它可以依赖于缓存,并在必要时从那里安装。通过指定--prefer-offline,您可以反转此行为,以便它将首先检查缓存,并且仅在无法在缓存中找到包时才尝试从internet下载包。这可以使您的安装/恢复明显更快,并将允许您执行可重复构建,但您可能无法获得最新版本(例如,如果您使用的版本规格为~1.2.3)。还有一个--offline选项,如果它在你的本地缓存中找不到包,它将抛出一个错误(即它永远不会尝试从互联网下载)。

欲了解更多信息,请访问https://yarnpkg.com/blog/2016/11/24/offline-mirror/

票数 23
EN

Stack Overflow用户

发布于 2017-12-07 04:09:58

要使用--prefer-offline,首先必须设置离线包存储库。

让我们将缓存设置在主文件夹中的隐藏目录中:

代码语言:javascript
复制
yarn config set yarn-offline-mirror ./.npm-offline  

还可以设置一个配置,让yarn清理下载的tarball:

代码语言:javascript
复制
yarn config set yarn-offline-mirror-pruning true

现在,每当您在某个项目中运行yarn install时,它都会缓存此目录中的模块,然后您可以使用yarn --prefer-offline获取这些模块。

当您以后想要从缓存中安装时,可能是在一个新项目中,您需要指定所需的模块版本,因为它没有latest的概念。最简单的方法是简单地添加:

代码语言:javascript
复制
yarn add moment

在我的机器上打印如下:

代码语言:javascript
复制
error Couldn't find any versions for "moment" that matches "latest" in our cache. 
Possible versions: "2.1.0, 2.13.0, 2.17.0, 2.17.1, 2.18.1, 2.19.1, 2.19.2, 2.19.3, 2.8.4" 
// Note that above is not in semver order...

然后,我可以使用以下命令安装最新的脱机版本:

代码语言:javascript
复制
yarn add moment@2.19.3

@禤浩焯提到的Yarn博客post详细介绍了如何为每个项目创建缓存,以及如何在需要时为您的团队提交缓存。我自己只使用了一个缓存,以便能够理想地在脱机时引导新项目。

票数 7
EN

Stack Overflow用户

发布于 2017-05-06 20:39:25

S.O.的A quite popular guy说:

“读一读源代码,卢克!”

这是yarn命令行界面的--prefer-offline标志的the source

代码语言:javascript
复制
commander.option('--prefer-offline', 'use network only if dependencies are not available in local cache');

享受吧!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43709240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档