拉取公司前端项目本地运行结果Bug频出,看我是如何一步一步成功解决的

news2024/12/28 2:57:39

文章目录

  • 前端项目运行Bug记录
    • 问题背景
    • `npm install` 报错
      • 问题1:`npm install` 报错`ERESOLVE could not resolve`
      • 问题2:`npm install` 报错 `Cannot read properties of null`
      • 问题3:node安装了npm没安装
      • 问题4:npm和node不兼容
      • 问题5:包管理器混合使用导致报错
    • `npm run serve`报错
      • 问题1:`npm run serve`报错`Error: EBUSY`
      • 问题2:缓存问题
    • 总结

前端项目运行Bug记录

问题背景

今天 leader 让我拉取前端项目,在本地跑一下,结果……┭┮﹏┭┮,社死现场,看文章中这么多问题,应该就能大概知道我当时的处境了吧,简直是问题频出,主要是 leader 还站在我后面看我的问题,我当时简直像找个地缝钻进去了😫,幸好leader 人好,没有骂我”连个这么简单的东西都要弄半天“

注意:文中有些问题的原因我可能分析的是存在问题的,如果大佬知道具体的详细原因,还请您不吝赐教(可以评论或私信告诉在下,在下将不胜感激)

npm install 报错

问题1:npm install 报错ERESOLVE could not resolve

执行npm i下载依赖,直接报如下错误

image-20231007114752181

PS D:\Project\xdd\hhtc-carparking\carparking-web> npm i
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR! 
npm ERR! While resolving: carparkting@1.0.0
npm ERR! Found: webpack@4.47.0
npm ERR! node_modules/webpack
npm ERR!   webpack@"^4.0.0" from @vue/cli-plugin-babel@3.12.1
npm ERR!   node_modules/@vue/cli-plugin-babel
npm ERR!     dev @vue/cli-plugin-babel@"^3.3.0" from the root project
npm ERR!   webpack@"^4.0.0" from @vue/cli-plugin-eslint@3.12.1
npm ERR!   node_modules/@vue/cli-plugin-eslint
npm ERR!     dev @vue/cli-plugin-eslint@"^3.3.0" from the root project
npm ERR!   4 more (@vue/cli-service, html-webpack-plugin, less-loader, sass-loader)
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! vue-loader@"^15.7.0" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: webpack@5.88.2
npm ERR! node_modules/webpack
npm ERR!   peer webpack@"^5.0.0" from css-loader@6.8.1
npm ERR!   node_modules/css-loader
npm ERR!     node_modules/vue-loader
npm ERR!       vue-loader@"^15.7.0" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR! See D:\nodejs\node_cache\eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     D:\nodejs\node_cache\_logs\2023-10-07T03_39_25_528Z-debug.log
PS D:\Project\xdd\hhtc-carparking\carparking-web> Could not resolve dependency
Could : 无法将“Could”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ Could not resolve dependency
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (Could:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
  • 问题原因:依赖冲突问题

  • 问题解决:删除原来下载的依赖,然后执行npm install --legacy-peer-deps

    这个指令的作用是允许接受不兼容的依赖(不推荐),最终发现这种方式并不能成功解决问题,执行后出现了问题2

注意:问题仍然为解决,出现了问题2

问题2:npm install 报错 Cannot read properties of null

经过百度,发现是依赖版本问题,然后执行npm install --legacy-peer-deps,结果又报如下错误:

image-20231007114820730

npm ERR! Cannot read properties of null (reading 'pickAlgorithm')

npm ERR! A complete log of this run can be found in:
npm ERR!     D:\nodejs\node_cache\_logs\2023-10-07T03_46_01_778Z-debug.log
  • 问题原因:依赖冲突问题

    最终定位到问题,是node版本问题,项目中使用的是 "node-sass": "^4.11.0",而我电脑中使用的是 node 16,经过查阅资料发现node-sass 4.x对应node 14,node-sass 6.x 才对应node 16.x,没办法了,我不可能直接把公司项目的依赖给改了吧,只能改自己当前电脑中的node版本了(好在有 nvm 这个node版本控制器,不然更换node会很麻烦)

  • 问题解决:将node16改成node14

注意:问题仍未解决,出现了问题3

问题3:node安装了npm没安装

  • 问题原因:未知

    一般而言安装node都会自动安装npm的,但是这次安装完node后却没安装npm

  • 问题解决:下载当前node版本对应的npm

    npm下载地址:CNPM Binaries Mirror (npmmirror.com)

    node与npm对照表:以往的版本 | Node.js (nodejs.org)

问题4:npm和node不兼容

image-20231007163003339

  • 问题原因:本地的node没有删除干净,至于为什么我本地会有node残余我现在还没搞明白,明明我这个 nvm 早在几个月前就已经开始使用了,并且几个月前就已经将本地的 node 给删干净了,但是发现这次任然存在 node 残留,这一点我暂时没想通w(゚Д゚)w

  • 问题解决:将本地的node删除干净即可

    删除目录C:\Users\ghp\AppData\Roaming里面的 npm , npm-cache 两 个文件

问题5:包管理器混合使用导致报错

img

  • 问题原因:包管理器混合使用,拉取下来的项目使用yarn.lock锁住版本,我使用 npm install 下载依赖

  • 问题解决:删除package-lock.json(这个文件是npm install 自动生成的),删除node_moudles,然后执行npm cache clean --force

    yarn install
    

npm run serve报错

问题1:npm run serve报错Error: EBUSY

 ERROR  Failed to compile with 35 errors                                                                                                   下午4:54:18

These dependencies were not found:

* tinymce/icons/default/icons in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/advlist in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/anchor in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/autolink in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/autoresize in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/charmap in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/code in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/codesample in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/colorpicker in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/contextmenu in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/directionality in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/fullscreen in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/help in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/hr in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/image in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/imagetools in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/insertdatetime in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/legacyoutput in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/link in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/lists in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/media in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/nonbreaking in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/noneditable in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/pagebreak in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/preview in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/print in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/searchreplace in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/table in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/textpattern in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/visualblocks in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/visualchars in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/plugins/wordcount in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/themes/silver/theme in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&
* tinymce/tinymce in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/jeecg/JEditor/index.vue?vue&type=script&lang=js&

To install them, you can run: npm install --save tinymce/icons/default/icons tinymce/plugins/advlist tinymce/plugins/anchor tinymce/plugins/autolink tinymce/plugins/autoresize tinymce/plugins/charmap tinymce/plugins/code tinymce/plugins/codesample tinymce/plugins/colorpicker tinymce/plugins/contextmenu tinymce/plugins/directionality tinymce/plugins/fullscreen tinymce/plugins/help tinymce/plugins/hr tinymce/plugins/image tinymce/plugins/imagetools tinymce/plugins/insertdatetime tinymce/plugins/legacyoutput tinymce/plugins/link tinymce/plugins/lists tinymce/plugins/media tinymce/plugins/nonbreaking tinymce/plugins/noneditable tinymce/plugins/pagebreak tinymce/plugins/preview tinymce/plugins/print tinymce/plugins/searchreplace tinymce/plugins/table tinymce/plugins/textcolor tinymce/plugins/textpattern tinymce/plugins/visualblocks tinymce/plugins/visualchars tinymce/plugins/wordcount tinymce/themes/silver/theme tinymce/tinymce
Error from chokidar (D:\): Error: EBUSY: resource busy or locked, lstat 'D:\DumpStack.log.tmp'
  • 问题原因:依赖问题

    通过报错信息可以以下看出来,这是一个依赖问题

  • 问题解决:下载缺失的依赖

    npm install tinymce@5.1.0 -S
    npm install @tinymce/tinymce-vue@3.0.1 -S
    

    最终还算报错,没有得到解决,我于是清理了缓存,然后重新执行yarn install就成功解决了

问题2:缓存问题

问题1中,我通过报错信息,认为是一个依赖问题,结果

  • 问题原因:缓存残留

  • 问题解决:删除node_moudles目录,这个目录是已经下载好的依赖,然后执行下面的指令

    npm clean cache --force
    

然后执行 npm run serve 即可看到项目访问地址了

image-20231007175628678

总结

本文主要记录了,我拉取公司代码然后本地运行的过程,也是第一次拉取真正的企业级项目代码😄,也是一次不错的经验,具体的流程就是:

  1. leader 发送一个仓库地址给我
  2. 我拿着这个仓库地址使用 git clone 到本地
  3. 执行 npm i 下载依赖
  4. 执行 npm run serve 运行项目

总的来讲这个过程是十分简单的,但是第三步和第四步……

下次拉取项目代码到本地运行,一定要有以下注意点:

  1. 确保本地环境和项目环境严格一致。这个坑我踩过了,我本地的 node是16,项目环境是12 ┭┮﹏┭┮

    PS:关于查看项目环境,前端主要是看 package.json 文件,后端主要是看 pom.xml 文件

  2. 能够快速定位到问题的本质,这一点也十分重要,能够帮助你少走很多弯路,节约很多时间,就拿第一个大问题 npm install 来说,我就走了弯路,本来是一个node的版本问题,结果饶了一大圈,又是改node,又是混用包管理器,结果中间由于多余的操作又接连踩了几个坑,真的是欲哭无泪啊

  3. 遇到问题不要逞强,要善于请教前辈。职场新人,特别是刚从学校出来的,对于请教别人问题会感觉很羞耻,然后自己去逞强,结果问题没解决,还浪费了大量的时间,这是是非不可取的,公司里的前辈可能是最讨厌这类人的吧。其实,这没啥羞耻的,你本来就是一个新人,一个实习生,你很牛吗?你就的抱着不懂就问的心态参与公司分配给你的事情当中,不应该做一个闷葫芦,坐在那里一言不发

上面所有的问题中,只有两个是这次问题的核心,其它的都是弯路,核心的两个问题:

  1. node版本不对,切换之后npm没有安装,安装之后node和npm不兼容
  2. 缓存问题

如果一开始能够把这两个问题给发现,就不用这这么多弯路了,节约大量的时间

主要是第一点,只要第一点做到了,基本上没啥问题

参考资料

  • npm错误——npm ERR! code ERESOLVE 解决方法(依赖冲突、无法解析依赖) - 掘金 (juejin.cn)
  • 解决npm ERR! Cannot read properties of null (reading ‘pickAlgorithm‘)报错问题 -萝卜头不吃萝卜头的博客-CSDN博客
  • gyp ERR!与node-pre-gyp ERR!报错解决 - 知乎 (zhihu.com)
  • nvm安装node没有npm的问题 - 简书 (jianshu.com)
  • npm 版本不支持node.js的解决方法 - 掘金 (juejin.cn)
  • 记一次yarn和npm混用导致的问题 - 浪漫是个锤子 - 博客园 (cnblogs.com)
  • yarn install命令报错解决办法-warning package-lock.json found._祈澈菇凉的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1067424.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新文件覆盖旧文件还能复原吗,3个方法快速恢复覆盖文件!

iPhone在解压压缩文件时,不小心将同名文件进行了覆盖,怎么撤回? 在使用U盘转移文档时,意外将同名文档进行了替换,怎么恢复? 当误将重名文件进行了替换,如何找回这些被覆盖的旧文件?…

Vue中的数据绑定

一、v-bind单向数据绑定 单向数据绑定中,数据只能由data流向页面。 v-bind:属性名"data变量" 或简写为 :属性名"data变量" 我们修改data中的iptvalue值,页面input框中的value值改变。 而我们修改input框中的value值&#xff0…

【C++初阶(二)C——C++过渡必看】

文章目录 前言一、C关键字🍎二、命名空间🍅1.命名空间的定义🍒2.命名空间使用🍓 三、C输入&输出🍑四、缺省参数🫑1. 缺省参数概念🍉2. 缺省参数分类🥝 五、函数重载&#x1f965…

【Vue面试题五】说说你对Vue生命周期的理解?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:请描述下你对vue生命周期…

八、互联网技术——物联网

文章目录 一、智慧物联案例分析二、M2M技术三、数据保护综合案例分析一、智慧物联案例分析 智能物流是一种典型的物联网应用。一个物流仓储管理系统架构如下图所示: [问题1] 图中的三层功能:仓库物品识别、网络接入、物流管理中心,分别可对应到物联网基本架构中的哪一层? …

金九银十,刷完这个笔记,17K不能再少了....

大家好,最近有不少小伙伴在后台留言,得准备面试了,又不知道从何下手!为了帮大家节约时间,特意准备了一份面试相关的资料,内容非常的全面,真的可以好好补一补,希望大家在都能拿到理想…

MybatisPlus01

MybatisPlus01 1.MybatisPlus初体验 1.1首先要引入MybatisPlus的依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version></dependency>1.2定义Mapp…

【论文极速读】EMT——评估多模态LLM中的灾难性遗忘问题

【论文极速读】EMT——评估多模态LLM中的灾难性遗忘问题 FesianXu 20231001 at Baidu Search Team 前言 论文[1]报告了多模态LLM中遇到的灾难性遗忘问题&#xff0c;并且提出了一种评估其程度的方法EMT&#xff0c;本文简要介绍&#xff0c;希望对读者有所帮助。如有谬误请见谅…

criu简单例子

CRIU&#xff08;Checkpoint/Restore In Userspace&#xff09;是运行在linux操作系统上的一个开源软件&#xff0c;其功能是在用户空间实现Checkpoint/Restore功能。 github地址如下&#xff1a;https://github.com/checkpoint-restore/criu 本人选取的版本是3.12&#xff0…

使用V-Ray for SketchUp 进行室外场景操作流程!

使用V-Ray for SketchUp 渲染时&#xff0c;可让大家轻松创建出色的渲染效果。如何使用V-Ray for SketchUp 进行室外场景操作呢&#xff1f; 对于一些新手朋友&#xff0c;可能是不知所措的&#xff0c;今天小编通过一个室外场景案例流程来给大家展示看看。 1、设置场景 可视化…

FPGA设计时序约束三、设置时钟组set_clock_groups

目录 一、背景 二、时钟间关系 2.1 时钟关系分类 2.2 时钟关系查看 三、异步时钟组 3.1 优先级 3.2 使用格式 3.3 asynchronous和exclusive 3.4 结果示例 四、参考资料 一、背景 Vivado中时序分析工具默认会分析设计中所有时钟相关的时序路径&#xff0c;除非时序约束…

Android子线程可以更新UI

目录 1 传统更新UI的七种方式1.1 new Handler()1.2 new Handler.Callback()1.3 new Handler().post(Runnable r)1.4 new Handler().postDelayed(Runnable r, long delayMillis)1.5 Activity.runOnUiThread(Runnable action)1.6 View.post(Runnable action)1.7 View.postDelayed…

科普丨如何让语言芯片保持稳定性能

一、勿长期高磁接触 虽然高质量的语音芯片的高声量范围相对较大&#xff0c;但是智能语音芯片一般分为不同情况使用&#xff0c;首先是内外不能混用&#xff0c;不仅如此在室内使用时也要防止长期的高磁接触&#xff0c;这样也会使语音芯片寿命折损。 二、定期清尘擦拭 专业…

计算机网络拓扑结构

什么是计算机网络拓扑结构&#xff1f; 计算机网络拓扑结构是指在网络中连接计算机和设备的方式或布局。它决定了如何在网络中传输数据&#xff0c;以及网络中的设备如何相互通信。不同的拓扑结构适用于不同的场景和需求&#xff0c;因此选择正确的拓扑结构对于网络性能和可用…

详解FreeRTOS:FreeRTOS任务恢复过程源码分析(进阶篇—4)

本篇博文讲解FreeRTOS中任务恢复过程的源代码,帮助各位更好理解恢复任务的原理和流程。 在详解FreeRTOS:FreeRTOS任务管理函数(基础篇—11)中,讲述了任务恢复函数有两个vTaskResume()和xTaskResumeFromISR(),一个是用在任务中的,一个是用在中断中的,但是基本的处理过程…

[C]二叉树的实现——喵喵成长记

宝子&#xff0c;你不点个赞吗&#xff1f;不评个论吗&#xff1f;不收个藏吗&#xff1f; 最后的最后&#xff0c;关注我&#xff0c;关注我&#xff0c;关注我&#xff0c;你会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的很重要…

OpenAI将自研芯片,以解决ChatGPT算力短缺问题

10月6日&#xff0c;路透社消息&#xff0c;OpenAI将自研芯片&#xff0c;以解决ChatGPT算力短缺的问题。 据内部人士透露&#xff0c;OpenAI目前正在评估潜在的芯片厂商&#xff0c;以进行收购。 随着ChatGPT等生成式AI产品的火爆出圈&#xff0c;AI算力成为互联网领域的新一…

SpringBoot, EventListener事件监听的使用

1、背景 在开发工作中&#xff0c;会遇到一种场景&#xff0c;做完某一件事情以后&#xff0c;需要广播一些消息或者通知&#xff0c;告诉其他的模块进行一些事件处理&#xff0c;一般来说&#xff0c;可以一个一个发送请求去通知&#xff0c;但是有一种更好的方式&#xff0c;…

BLIP 小结

论文&#xff1a;Bootstrapping Language-Image Pre-training (BLIP) 代码&#xff1a;https://github.com/salesforce/BLIP 1 motivation 目前多模态模型在图片理解类任务、生成类任务表现卓越主要源于Scale up model and scale up dataset&#xff08;更大的模型&#xff…

加速attention计算的工业标准:flash attention 1和2算法的原理及实现

transformers目前大火&#xff0c;但是对于长序列来说&#xff0c;计算很慢&#xff0c;而且很耗费显存。对于transformer中的self attention计算来说&#xff0c;在时间复杂度上&#xff0c;对于每个位置&#xff0c;模型需要计算它与所有其他位置的相关性&#xff0c;这样的计…