徒劳无获是寻常,因为总是有人半途而废

懂得珍惜,学会累积,成长,反思

关于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下载依赖包以后,进行如上述操作也是可行的。

 


posted @   头秃婷婷  阅读(762)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
console.log('Don't define yourself');
const aboutMe = {
name: 'Titi Zhang',
title: 'Vue JS HTML',
location: 'China, HeBei',
contact: {
email: '18235293481@163.com',
website:'https://gitee.com/zhangtingtingANDcow'
}
}
点击右上角即可分享
微信分享提示