ERROR context.outputFileSystem.lstat 报错原因

今天在跑公司nuxt2项目的时候发现了一个报错问题:

 ERROR  context.outputFileSystem.lstat is not a function                   16:51:51  

  at size (node_modules\webpack-dev-middleware\dist\middleware.js:169:36)
  at new Promise (<anonymous>)
  at processRequest (node_modules\webpack-dev-middleware\dist\middleware.js:167:28)  
  at ready (node_modules\webpack-dev-middleware\dist\utils\ready.js:17:5)
  at Object.middleware (node_modules\webpack-dev-middleware\dist\middleware.js:70:5) 
  at node_modules\@nuxt\webpack\node_modules\pify\index.js:33:11
  at new Promise (<anonymous>)
  at Object.<anonymous> (node_modules\@nuxt\webpack\node_modules\pify\index.js:6:9)  
  at Object.apply (node_modules\@nuxt\webpack\node_modules\pify\index.js:80:20)      
  at WebpackBundler.middleware (node_modules\@nuxt\webpack\dist\webpack.js:1917:37)  
  at node_modules\@nuxt\server\dist\server.js:495:14
  at call (node_modules\connect\index.js:239:7)
  at next (node_modules\connect\index.js:183:5)
  at SendStream.error (node_modules\serve-static\index.js:121:7)
  at SendStream.emit (node:events:513:28)
  at SendStream.error (node_modules\send\index.js:270:17)
  at SendStream.onStatError (node_modules\send\index.js:417:12)
  at onstat (node_modules\send\index.js:722:26)
  at FSReqCallback.oncomplete (node:fs:202:21)

 从上面的报错来看大致是在使用Webpack打包工具时和nuxt依赖有关,然后去看了package.json里的版本和下载的依赖版本是否有差异;
然后发现我package.json里面的nuxt版本写的是 "nuxt": "^2.15.3", 而下载的依赖版本是2.18.3,所以就导致了这个报错,为什么它会下载与2.18.3版本而不是2.15.3版本呢?

这就要学习一下版本管理符号了。

在JavaScript的包管理工具npm中,~(波浪号)和^(插入符号)是用于指定依赖版本范围的符号,它们有不同的含义:

  1. ~(波浪号):当你使用波浪号指定版本时,它表示你可以接受该版本号的补丁更新。这意味着只有当主版本号或次版本号发生变化时,才会拒绝更新。例如,如果你指定了~1.2.3,那么1.2.x的任何后续版本(如1.2.4)都是可以接受的,但是1.3.0或2.0.0则不被接受,因为它们改变了次版本号或主版本号。

  2. ^(插入符号):使用插入符号指定版本时,它表示你可以接受该版本号的次要更新。这意味着只有当主版本号发生变化时,才会拒绝更新。例如,如果你指定了^1.2.3,那么1.x.x的任何后续版本(如1.3.0、1.2.4)都是可以接受的,但是2.0.0则不被接受,因为它改变了主版本号。

简而言之,~更严格,只允许补丁级别的更新,而^则允许次要版本的更新,这通常包括了更多的新功能和改进。

所以解决方法是用~代替^,然后再去重装一下依赖就解决了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值