当前位置: 首页 > news >正文

【NodeJs】【npm】npm安装electron报错

解决问题

npm安装electron报错一般来说是镜像源的问题。
electron的镜像源与一般的 vue 之类的镜像源地址不一样需要单独配置。
npm读取的全局配置一般是在
C:\Users\{用户}\.npmrc 这个配置文件中。
如果你找不到你的配置文件可以执行如下命令,

# 执行后会直接用txt打开你的配置文件 进行修改保存即可
npm config edit
cache=D:\Develop\nodeJs\node_cache
prefix=D:\Develop\nodeJs\node_global
registry=https://registry.npmmirror.com/
electron_mirror=https://npm.taobao.org/mirrors/electron/

上面是我原来的配置文件,由于淘宝的镜像源地址换了,从原来的
https://npm.taobao.org/ 换到了现在的
https://registry.npmmirror.com/ 导致原来可以下载现在不能下载。
因此只需要将上述配置修改成这样即可

registry=https://registry.npmmirror.com/
electron_mirror=https://cdn.npmmirror.com/binaries/electron/
electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/

然后 删除node_modules文件夹,并执行下面命令清除缓存

npm cache clean --force

知识补充

  1. npm 命令补充
# 查看配置  也就是 .npmrc 中的配置
npm config list 
# 查看配置中的某个值  
npm get [key]
# 例如查看依赖源地址  这些key 就是.npmrc中的key
npm get registry

需要注意的是 npm 读取.npmrc 是有优先级的
如果在项目中也存在.npmrc文件 npm 会优先读取 项目中的配置。如果某个key在项目中的.npmrc找不到才会去读取全局的 .npmrc
所以项目希望有一些自己独有的配置时 可以在项目中放上自己的.npmrc
2. .npmrc 中值是什么意思

# npm缓存依赖包的目录
cache=D:\Develop\nodeJs\node_cache
# npm全局安装的目录
prefix=D:\Develop\nodeJs\node_global
# 定义npm的registry,即npm的包下载源
registry=http://registry.npmjs.org/
# 定义npm的代理服务器,用于访问网络
proxy=http://proxy.example.com:8080/
# 定义npm的https代理服务器,用于访问网络
https-proxy=http://proxy.example.com:8080/
# 是否在SSL证书验证错误时退出
strict-ssl=true
# 定义自定义CA证书文件的路径
cafile=/path/to/cafile.pem
# 自定义请求头中的User-Agent
user-agent=npm/{npm-version} node/{node-version} {platform}
# 安装包时是否自动保存到package.json的dependencies中
save=true
# 安装包时是否自动保存到package.json的devDependencies中
save-dev=true
# 安装包时是否精确保存版本号
save-exact=true
# 是否在安装时检查依赖的node和npm版本是否符合要求
engine-strict=true
# 是否在运行脚本时自动将node的路径添加到PATH环境变量中
scripts-prepend-node-path=true
  1. npm 依赖包缓存机制

npm install 之后会在项目中生成 package-lock.json 文件。该文件是用来锁定版本使用的,其中每个依赖下面都有一个integrity 这是一个hash值,通过hash算法生成出来的一个包的摘要。
然后npm会去D:\Develop\nodeJs\node_cache缓存目录下找 是否已经下载过依赖,
如果下载过则 直接从缓存中解压出来,否则就去下载,并更新package-lock.json 和缓存
如下

"node_modules/@babel/parser": {"version": "7.27.7","resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.27.7.tgz","integrity": "sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q==","dependencies": {"@babel/types": "^7.27.7"},"bin": {"parser": "bin/babel-parser.js"},"engines": {"node": ">=6.0.0"}},

所以有时担心缓存问题的时候 可以删除 package-lock.json npm就会根据 package.json去下载了。
还有package.json的优先级大于package-lock.json

http://www.lryc.cn/news/576002.html

相关文章:

  • 智能体记忆原理-prompt设计
  • [Ethernet in CANoe]1--SOME/IP arxml文件格式的区别
  • 基于Spring Cloud Alibaba构建微服务架构的实践探索
  • Ubuntu 部署 ResilioSync3.0 指南
  • IBM RAG 挑战赛 挑战赛 冠军 RAG_Challenge 系统性理解
  • 微调大语言模型(生成任务),怎么评估它到底“变好”了?
  • dp进阶,树形背包(dfs+01)
  • 自动对焦技术助力TGV检测 半导体检测精度大突破
  • 本地部署 WordPress 博客完整指南(基于 XAMPP)
  • Bootstrap 5学习教程,从入门到精通,Bootstrap 5 侧边栏导航(Offcanvas) 语法知识点及案例(26)
  • oracle基础审计管理
  • Django实战:自定义中间件实现全链路操作日志记录
  • IPv6配置
  • MySQL主从备份
  • 16.2 Docker多阶段构建实战:LanguageMentor镜像瘦身40%,支持500+并发1.2秒响应!
  • 2025年智能营销产品发展和应用趋势
  • uniapp消息推送
  • 向量关于基的坐标向量
  • 图像分割模型中的空间信息、上下文信息、空间路径、上下文路径到底是什么?有什么作用?
  • 【C++】atoi和std::stoi
  • redisTemplate简单实现幂等性校验
  • 微信小程序进度条progress支持渐变色
  • 【vue3】打包配置webpack压缩,哈希值设置
  • CVE-2015-5531源码分析与漏洞复现(Elasticsearch目录遍历漏洞)
  • 高斯混合模型GMMK均值(十三-1)——K均值是高斯混合模型的特例
  • macOS,切换 space 失效,向右切换space(move right a space) 失效
  • [论文阅读] 人工智能 | 真实场景下 RAG 系统的工程实践指南
  • JUC:7线程的五种状态与六种状态
  • AI歌手Yuri出道:GenAI,透露着新的AI产业机遇?
  • 增加寒武纪MLU270视频转码