当前位置: 首页 > 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.lqws.cn/news/544573.html

相关文章:

  • Python Async 编程快速入门 | 超简明异步协程指南
  • C++常用算法解析:sort、find、for_each、copy
  • 阶段二开始-第一章—8天Python从入门到精通【itheima】-116节(封装)
  • cuda编程笔记(5)--原子操作
  • UI前端与数字孪生结合案例分享:智慧零售的可视化解决方案
  • 北京燃气集团管道腐蚀智能预测实践:LSTM算法驱动能源设施安全升级
  • VSCode中创建和生成动态库项目
  • 智能呼叫系统五大核心模式解析
  • 使用mitmdump实现高效实时抓包处理:从原理到实践
  • 技术博客:如何用针孔相机模型理解图像
  • 基于Redis分布式的限流
  • 一款专业的顽固软件卸载工具
  • ubuntu下利用Qt添加相机设备并运行arm程序
  • GO 语言学习 之 变量和常量
  • 神经形态计算与人工智能的融合:从生物启发到智能跃迁的IT新纪元
  • 本地部署Dify+Ragflow及使用(一)
  • PHP语法基础篇(六):数组
  • 通达信 稳定盈利多维度趋势分析系统
  • 鸿蒙OS开发IoT控制应用:从入门到实践
  • 概述-2-MySQL安装及启动-1-Dcoker安装MySQL
  • vue将页面导出pdf,vue导出pdf ,使用html2canvas和jspdf组件
  • Jmeter并发测试和持续性压测
  • 手机屏亮点缺陷修复及相关液晶线路激光修复原理
  • 利用云雾自动化在智能无人水面航行器中实现自主碰撞检测和分类
  • UI前端大数据处理实战技巧:如何有效应对数据延迟与丢失?
  • PILCO: 基于模型的高效策略搜索方法原理解析
  • HarmonyOS 5智能单词应用开发:记忆卡(附:源码
  • JVM 的 Dump分析以及 GC 日志
  • Vulkan模型查看器设计:相机类与三维变换
  • 【Python数据库】Python连接3种数据库方法(SQLite\MySQL\PostgreSQL)