关于git克隆到本地下载依赖报错的相关问题
——————————————————————————2.22.8.17更新——————————————————————————
这几天项目上遇到了同样的问题
npm ERR! cb() never called! npm ERR! This is an error with npm itself.
npm ERR! code 1 npm ERR! path E:\File\vue\ProjectTest\membership\project\node_modules\node-sass npm ERR! command failed
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
20 error code ELIFECYCLE 21 error errno 1 22 error eladmin-web@2.6.0 dev: vue-cli-service serve 22 error Exit status 1 23 error Failed at the eladmin-web@2.6.0 dev script. 23 error This is probably not a problem with npm. There is likely additional logging output above. 24 verbose exit [ 1, true ]
等等各种问题,尝试了许多办法。例如,添加系统变量、卸载重装sass、安装不同版本的node、使用cnpm进行解决等等等,结果都差强人意。最后的解决办法是通过要来上传项目的前辈的依赖包,直接运行,项目就一点问题都没有了。
——————————————————————以下为原记录,日期大约为2022.5——————————————————————
这几天老师交给我们一个项目,需要从gitee上克隆到本地,在多次尝试下载依赖失败后尝试了多种办法。
最后从老师那里要来了原本的依赖包,又在此基础上下载以来,运行后,依旧报错,主要原因是
npm ERR! code 1 npm ERR! path E:\File\vue\ProjectTest\membership\project\node_modules\node-sass npm ERR! command failed
可以简单理解为node-sass的问题,那么我们将node-sass进行卸载
npm uninstall node-sass
根据我们查询的办法:(19条消息) npm安装node-sass失败解决办法_kksw1121的博客-CSDN博客_node-sass
错误原因:
node-sass会依赖一个二进制文件binding.node,当下载node-sass时,会先下载这个文件,如果本地没有安装过这个文件,会在github下载该文件并将其缓存到全局;一般下载的时候会因为网络的原因下载失败,node-sass会尝试在本地编译binding.node,这个过程就需要用python。这时就会报错说没安装python,如果binding.node下载成功的话就不会报这个错解决办法:将npm源设置成淘宝镜像源,将binding.node源也改为淘宝镜像源
————————————————
版权声明:本文为CSDN博主「kksw1121」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43225030/article/details/106612859
我们对下载源进行设置:
npm config set registry https://registry.npm.taobao.org npm config set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/
然后进行设置下载node-sass
TIPS:
即--dev(生产)
包名会被注册在package.json的devDependencies里面,仅在开发环境下存在的包用-D,如babel,sass-loader这些解析器
npm i -D sass
尝试运行后依旧报错,具体如下:
Syntax Error: SassError: expected selector. ╷ 102 │ /deep/.el-submenu.is-opened .el-submenu__icon-arrow{ │ ^ ╵ E:\File\vue\ProjectTest\membership\project\src\views\myMenu.vue 102:1 root stylesheet
这就是最后一步了,按照它的提示,将所有/deep/替换为
::v-deep
上述步骤参考文章如下所示
因为写样式的时候,我在 < style > 标签中写了scoped 属性,这样导致我写的样式不能够传递给子组件,所以我写了一个 /deep/ 想要使用样式穿透,让子组件匹配上这个样式,但是不行,报了图片中的这个错误;
后来通过查资料发现,原来是我写的 /deep/ 出了问题;
如果使用 less 对 css 做出预处理的话,使用 /deep/ 就可以完成样式穿透的行为;
但是我使用的 scss 对 css 做出的预处理,所以不能够使用 /deep/ 而应该使用 ::v-deep 才对,于是我便用 ::v-deep 替换了 /deep/ 就解决了这个问题。
————————————————
版权声明:本文为CSDN博主「普通网友」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_67391677/article/details/123352027
替换完成后运行成功
上述流程是在基于拿到原本的依赖包的基础上进行的,经过测试发现即便没有原本的依赖包,在克隆后的基础上进行npm i下载依赖包以后,进行如上述操作也是可行的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器