Vite更新依赖缓存失败,强制更新依赖缓存

news/2024/11/16 21:35:21/

使用vite+ts开发一段时间了,感觉并不是想象中的好用,特别是出现些稀奇古怪的问题不好解决,比如下面这个问题

上午9:50:08 [vite] error while updating dependencies:
Error: ENOENT: no such file or directory, open 'E:/workspace-dir/node_modules/vue3-colorpicker/dist/index.es.js'   at Object.openSync (fs.js:497:3)at Object.readFileSync (fs.js:393:35)at extractExportsData (file:///E:/workspace-dir/node_modules/vite/dist/node/chunks/dep-2faf2534.js:42167:31)   at async runOptimizeDeps (file:///E:/workspace-dir/node_modules/vite/dist/node/chunks/dep-2faf2534.js:41843:29)at async optimizeNewDeps (file:///E:/workspace-dir/node_modules/vite/dist/node/chunks/dep-2faf2534.js:41246:16)at async runOptimizer (file:///E:/workspace-dir/node_modules/vite/dist/node/chunks/dep-2faf2534.js:41275:55)   

事情的原因是:项目是有个需求是需要拾色器功能(用的vue3-colorpicker),但是这个拾色器打包编译的时候总会出现些问题,想把它替换掉,于是执行yarn remove vue3-colorpicker将其node-modules移除并更新了package.json,下图可作证。

也有代码为例,已经删除了 

但是yarn dev启用项目的时候就会报上面的错误,vite某个文件依赖一个不存在的包,很明显的缓存没更新,对vite的印象再次降低 ,之前用vue-cli时候或者webpack的时候没有出现过这种情况。

解决尝试:

        开始以为node_modules有缓存,于是将yarn.lock删除,再次执行一遍yarn install更新node_modules,但是启动仍然报相同错误,也就是说删除yarn.lock再次安装也是存在问题,思维一时停滞,不知道如何下手,要不把node_modules包删除,再次执行一次安装,说干就干,问题解决,正常运行,也就是思路没问题,只是没找对缓存位置。

        后来专门去Vite官网找到了相关的章节,确实存在这样的问题。

    依赖预构建 | Vite 官方中文文档

文件系统缓存¶

Vite 会将预构建的依赖缓存到 node_modules/.vite。它根据几个源来决定是否需要重新运行预构建步骤:

  • package.json 中的 dependencies 列表
  • 包管理器的 lockfile,例如 package-lock.jsonyarn.lock,或者 pnpm-lock.yaml
  • 可能在 vite.config.js 相关字段中配置过的

只有在上述其中一项发生更改时,才需要重新运行预构建。

如果出于某些原因,你想要强制 Vite 重新构建依赖,你可以用 --force 命令行选项启动开发服务器,或者手动删除 node_modules/.vite 目录。


http://www.ppmy.cn/news/1038392.html

相关文章

python 开启5个进程处理list数据

要在 Python 中开启多个进程来处理列表数据,你可以使用 multiprocessing 模块。下面是一个开启5个进程处理列表数据的示例代码: python import multiprocessingdef process_item(item):# 在这里处理每个列表项的逻辑print(f"Processing item: {ite…

拉丁方设计资料的方差分析(SPSS版+SAS版)

拉丁方设计(Latin square design):实验研究中涉及一个处理因素和两个控制因素,每个因素的类别数或水平数相等,此时可采用拉丁方设计,将两个控制因素分别安排在拉丁方设计的行和列上。该设计类型仍为单因素方…

用于量子通信和互联网的光量子芯片

近年来,新兴的光量子芯片在量子通信和量子互联网领域取得了重大进展。光量子芯片芯片具有可扩展、稳定和低成本等特点,为微型化应用开辟了新的可能性。 7月14日,一篇发表在《light: science & applications》的文章概述了用于量子通信的光…

【makefile】

一、make概述 什么是make make是个命令,是个可执行程序,用来解析Makefile文件的命令。这个命令存放在 /usr/bin/。 什么是makefile? makefile 是个文件,这个文件中描述了咱们程序的编译规则。 咱们执行make命令的时候,make命…

在本地搭建WAMP服务器并通过端口实现局域网访问(无需公网IP)

文章目录 前言1.Wamp服务器搭建1.1 Wamp下载和安装1.2 Wamp网页测试 2. Cpolar内网穿透的安装和注册2.1 本地网页发布2.2 Cpolar云端设置2.3 Cpolar本地设置 3. 公网访问测试4. 结语 前言 软件技术的发展日新月异,各种能方便我们生活、工作和娱乐的新软件层出不穷&a…

C++学习笔记总结练习: 字符串类MyString的实现

MyString是一个自定义的字符串类&#xff0c;它封装了一些常见的字符串操作和功能。下面是一个简单的MyString类的实现示例&#xff1a; #include <iostream> #include <cstring>class MyString { private:char* m_data; // 用于存储字符串的字符数组int m_length…

网络安全 Day30-运维安全项目-容器架构上

容器架构上 1. 什么是容器2. 容器 vs 虚拟机(化) :star::star:3. Docker极速上手指南1&#xff09;使用rpm包安装docker2) docker下载镜像加速的配置3) 载入镜像大礼包&#xff08;老师资料包中有&#xff09; 4. Docker使用案例1&#xff09; 案例01&#xff1a;:star::star::…

Redis可以用作消息队列吗?如何实现简单的消息队列功能?

是的&#xff0c;Redis可以被用作简单的消息队列。下面是一种实现简单消息队列功能的方式&#xff1a; 生产者&#xff08;Producer&#xff09;端&#xff1a; 使用LPUSH命令将消息推送到一个列表中&#xff0c;作为消息队列的实现。例如&#xff0c;使用LPUSH命令将消息推送到…