范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

升级Yarn2,摆脱nodemodules

  node 项目中最臭名昭著的莫过于node_modules 文件夹,这个糟糕的结构动辄使你的文件数目增加几万甚至几十万,无论是安装还是删除,都要消耗大量时间,并且占据大量inode 结点,我们随便进入一个react 项目文件夹,看一下由于有node_modules 会使你的项目中的文件个数变成多少: $ find . -type f | wc -l 223629
  仅仅一个项目下面就有多达22万个文件。
  现在我们来看一下目前的 yarn 版本号是多少: $ yarn --version 1.22.11
  嗯,目前 yarn 的版本号是1.22.11 ,那我们如何安装yarn 2 呢?答案是不需要安装,只需要设置就可以了。 $ yarn set version berry
  设置完了之后,我们再来看一下 yarn 的版本号: $ yarn --version 3.0.0
  不是说好的升级到 yarn 2 吗?怎么变成3.0 了?不用恐慌,越高越好。
  然后我们来看一下项目文件夹下多了这么几个文件,首先就是根目录下多了一个 .yarnrc.yml ,里面只有一句话: yarnPath: .yarn/releases/yarn-berry.cjs
  相应的,还多了一个文件夹 .yarn ,里面有一个子文件夹releases ,里面有一个文件yarn-berry.cjs ,这几个文件就是全部yarn 2 增加的内容了,这些内容不要在.gitignore 里忽略,其它的内容是需要忽略的,现在我们来在.gitignore 里增加一些需要忽略的内容: /node_modules /.pnp .pnp.js .pnp.cjs .yarn/cache .yarn/unplugged .yarn/install-state.gz
  接下来,我们准备利用新版的 yarn 安装我们的依赖文件,在此之前,我们需要先设置一下yarn 库的镜像服务器以加快整个下载过程: $ yarn config set npmRegistryServer https://registry.npm.taobao.org
  这时候,你再打开项目根目录下的 .yarnrc.yml 文件,会发现里面多了一行: npmRegistryServer: "https://registry.npm.taobao.org" yarnPath: .yarn/releases/yarn-berry.cjs
  所以我们知道其实这个 yarn config 命令也没有什么特别的地方,只是通过它来修改.yarnrc.yml 文件而已,你也可以通过直接修改.yarnrc.yml 文件来达到同样的效果。
  现在,我们开始删除旧的 node_modules 文件夹和yarn.lock 文件,并重建整个项目: $ rm -rf node_modules $ rm -f yarn.lock $ yarn
  整个下载过程应该还是比较顺利的,我们来看一下项目文件夹中多了哪些文件:  .yarn/cache .yarn/unplugged .pnp
  没有了 node_modules 文件夹,我们来看一下.yarn/cache 文件夹下有什么内容,里面有我们之前依赖的node_modules 文件夹下的所有依赖包,但不再是以目录的形式存在,而是变成了一个个zip 文件,yarn 2 就是利用项目根目录下的.pnp.cjs 文件定位到这些zip 文件以达到取代node_modules 的作用,这样极大程度地减少了项目中的文件个数。
  下面我们开始启动项目:  yarn start
  十有八九你的项目这时候是启动不起来的,不要慌,这篇文章告诉你所有的解决方法。
  首先,你遇到错误可能是这样:  Error: Your application tried to access terser-webpack-plugin, but it isn"t declared in your dependencies; this makes the require call ambiguous and unsound.
  具体内容可能不一样,但你要注意这个关键词 Your application ,这说明是你的代码当中的某个位置引用了后面的插件,但你没有在package.json 文件中显式声明它,那为什么之前用yarn 1 或者npm 的时候没有这个问题呢?因为以前是有node_modules 文件夹的,所有依赖包都被平摊在这个文件夹中,即使是被其它依赖的依赖引入的,它也会被释放在node_modules 根目录下,所以node 可以很轻松地找到它,而现在这个文件夹没有了,我们必须显式地在package.json 文件中引用它,才能引导yarn 找到这个依赖项。因此,解决这种Your application 缺乏某个依赖项的方法很简单,我们只需要用yarn 安装它就可以了: yarn add -D terser-webpack-plugin
  哦,又出错误了:  Invalid options object. Terser Plugin has been initialized using an options object that does not match the API schema.
  这是因为我们在安装的时候没有指定版本,导致安装的插件版本过高,我们在 package.json 里把版本降低一些: "terser-webpack-plugin": "^4.2.3",
  然后重新执行 yarn 进行安装,运行yarn start 再次启动,终于启动起来了!不过,不要高兴得太早,又遇到了这样的问题: Error: Your application tried to access @babel/plugin-transform-async-to-generator, but it isn"t declared in your dependencies; this makes the require call ambiguous and unsound.
  不要慌,既然还是 Your application 缺乏某个依赖包,那就还是我们的问题,停下来再安装它,然后再启动,直到解决完所有Your application 引起的问题。
  这时候,产生了新的错误:  Module not found: rc-bmap tried to access babel-runtime, but it isn"t declared in its dependencies; this makes the require call ambiguous and unsound.
  虽然同样是找不到依赖项,但这次的错误不是由于我们自己的应用导致的,而是由于依赖项自身导致的,这种问题该如何解决呢?不要急,我们打开 .yarnrc.yml 文件,按照错误提示增加以下设置: packageExtensions:   "rc-bmap@*":     dependencies:       "babel-runtime": "*"
  缺什么咱们就增加什么,有时候还要注意版本号。同样,这个问题不是由于 yarn 2 导致,而是因为我们的依赖项该增加的依赖没有增加而已,我们这里只是给它补全依赖,使它得以正常运行。
  别忘了,每次修改完 .yarnrc.yml 之后,都需要重新执行yarn ,然后再执行yarn start 。
  至此为止,我们的项目终于能够成功运行了!我们来看一下目前项目文件夹中的文件个数:  $ find . -type f | wc -l 17433
  现在只有 17000 个文件了,比我们最开始的22 万个文件减少了20 多万,运行速度也成倍提升。
  怎么样,是不是很值得一试呢?
  文章来源于@张京老师,https://segmentfault.com/a/1190000040520326

华为荣耀8现在价格是多少?值得入手吗?谢邀。华为荣耀8是去年推出的旗舰,主打颜值,目前在各大电商平台,有不同幅度的促销,各个版本的价格在16001800左右。个人觉得,荣耀8还是挺值得入手的一款产品。首先它的颜值手感绝为什么闲鱼上的手机都那么便宜,而且成色又好,到底好吗?你要相信一句话好货不便宜,便宜没好货。看运气,有些是套现用的,比如某手机1万元,某平台12期免息,我购入后9000元卖出,套现9000元,分期12期还咸鱼上买手机可要长点心,尤其是每天5分钟,python速成(8)首先明确学习目标,今天的目标是python中学习字符串常见操作今天这里要引入2个常用操作方法1,count返回要查找的数据在目标字符串里面出现的次数2,replace把目标字符串中为什么在拉美国家开始接受比特币和加密货币技术在萨尔瓦多宣布比特币法币化之后,许多拉美国家也开始接受比特币和加密货币技术。此外,位于南美的委内瑞拉也是第一批主动发售加密货币的国家,对加密货币也持乐观态度。谈到委内瑞拉给人的印象除了曲一,还有老鼎悦尔九戎阿甘都什么玩意阿里公司作为世界500强,某种程度上改变了中国的经济面貌。即使在和其他头部公司竞争过程中,我也总认为阿里要比做游戏毒害青少年的克扣外卖小哥工资的卖假药的做流氓软件的那几家公司要高尚界读丨腾讯安心平台打造商品数字化一站式服务生产企业数字化改革欧界报道近期,腾讯安心平台推行了一物一码的模式,来自甘肃定西的马铃薯也有了自己独特的身份证,在腾讯安心平台下,各农作物和产品都有各自的编码规范,相关生产档案也将被数据记录,每一个农Model3降价,汉EV刚正面!新增车型续航506公里不到21万特斯拉Model3又双叒叕降价了。是的,7月30日特斯拉官方宣布国产Model3标准续航升级版直降1。5万元,补贴后售价来到了23。59万元,距离各路吃瓜群众期盼的20万元心理价位人工智能会是铁路的未来吗?在大多数情况下,铁路货运已经是相对环保和高效的运输方式。除此之外,还能做怎样的提升呢?新科技如何在其中发挥作用?对于以优化运输规划和维护为使命的人工智能(AI)平台Transmet支付宝微信支付最强对手来了!美版支付宝正式进军中国新时代的四大发明,高铁网购扫码付共享单车,改变了大伙儿的衣食住行。支付宝微信这样的扫码付巨头,更是必需品了。放在10年前,要是拍条视频,说估计10年后大家出门几乎用不上纸币了,估计阿里看的到虚弱,看不到格局原创春天什么时候来春天什么时候来今天收录于话题互联网相关11上市公司3社会与新闻21从阿里巴巴的第三代领军人物的丑闻,到阿里巴巴灵魂人物的大放厥词,这个标题就一直存在我的草稿箱里,5G智能手机推荐OnePlus一加8T手机好用吗?OnePlus一加8T5G智能手机12GB256GB青域65w充电很快半个小时充满,一加8T很良心,赠送的壳也是完美贴合,保护了摄像头,和机身,性价比高,系统简洁,没有广告,很棒。
三星智爱呵护系列专业洗烘,让你的秋装熠熠生辉十月,气温的变化没有给人们反应的时间,还没来得及跟夏天告别,便迎来了凉爽的秋天。秋季,往往是时尚达人们穿搭比拼的旺季,相较于夏天,秋装的种类款式用料都更为丰富。眼花缭乱的衣服在人们沉浸式观赛,用三星NeoQLED看全运会9月15日,第十四届全国运动会在西安开幕,众多刚从东京奥运赛场载誉归来的体育健儿,即刻踏上了全运赛场。如果不能亲临赛场观赛,不妨配备一台本届全运会合作伙伴三星所推出的NeoQLED专家互联互通不应打折扣日前,工信部要求企业整改屏蔽外链问题,实现不同App间的互联互通。这有利于打破信息壁垒,保护用户选择权,促进互联网行业规范发展。然而,也有部分人认为,推进互联互通,容易给垃圾信息有本是安静的夜晚,却被父母教育孩子的打骂声打碎了白苏说文宿舍的楼道中一个月总有那么几次会传来孩子被父母挨打的哭声,这种滋味我小时候体会过,哭声中带着哀嚎,带着无助,带着疼痛,带着恐惧,每次这样被父母狠狠揍了一顿之后,几天都缓不过红黄蓝换马甲又虐童?每月学费1万2,老师针扎孩子被家长报警曾因老师扎针外教猥亵女童被批捕等事件引爆舆论的红黄蓝,再次因为旗下品牌涉嫌扎针虐童被公众关注。整整四年过去了,红黄蓝怎么还是你?作者梁春富编辑蔡真来源野马财经近日,据九派新闻报道,苹果宣布WWDC2021将于6月8日完全在线举行Apple今日宣布将于北京时间6月8日至11日以全在线的形式举行一年一度的全球开发者大会(WWDC)。WWDC21免费向所有开发者开放,将为iOSiPadOSmacOSwatchO荣耀新品连连华为官宣鸿蒙系统用途目前荣耀官方宣布,即将于7月15日召开荣耀新品发布会,届时很有可能将会发布荣耀的电视产品,这款承载着华为终端的又一领域的涉及和延伸,目前除了常用的手机,笔记本之外,华为还丰富了手环降价优惠,华为最佳麒麟980机型入手指南,买它还是等等荣耀V30伴随华为mate30系列的发布,国产最强芯片麒麟990也来到了我们的面前,大家是预约下单还是继续观望呢?新品上市,价格也是较高的,但双11也马上到来,华为机型也会有300500不等荣耀V30内心独白论实力,我比mate305G更加超值今年是5G元年,6G的研发也已经开始。华为作为最早布局5G的厂商,也保持了一骑绝尘的态势,发布了业内乃至世界上第一款SA全网络真5G集成芯片麒麟990。在mate系列首销火热的同时小米品牌困境,荣耀V30来袭!OPPO诠释什么叫做性价比性价比作为曾今的小米标签,在某种意义上造就了如今的小米,而在其它厂商发力线上市场时,则带给我们更多惊喜。骁龙855plus65W超级快充4000mh电池后置4摄主摄4800W像素这谁才是1999档的王者?盘点荣耀20S和红米note8Pro1999一个让无数粉丝狂欢呐喊的数字,代表了曾今互联网的一种狂热,意味着极致性价比和颠覆科技,而今我们就来盘点一下最具互联网营销思维的荣耀和红米,看看他们的最新竞品(荣耀20S61