react中安装依赖时的问题 【集合】

目录

 依赖升级/更新

1、 npm install @ --save-dev 与  npm install @ 的区别

1. ‌安装位置(依赖类型)‌

2. ‌package.json 中的区别‌

3. ‌示例

4. ‌何时使用哪种方式‌

  2、npm install @ 和  yarn add @ 有什么不一样吗

‌命令语法‌:

‌锁文件‌:

‌安装速度‌:

‌依赖解析‌:

‌输出信息‌:

 清理缓存‌:

3、 安装依赖时,显示There appears to be trouble with your network connection.

 4、 src/ package.json 中的依赖 版本与 node_modules包中 中的版本不一致

方法 1: 使用 yarn add 命令

方法 2: 手动编辑 package.json

验证更改

注意事项

5、依赖版本锁定

npm 锁定版本方式


 依赖升级/更新

// @edsp/apollo-formy依赖本来3.0.0 现在升级到 4.0.0 npm install @edsp/apollo-form@4.0.0
// 或者
yarn add @edsp/apollo-form@4.0.0

1、 npm install <package-name>@<version> --save-dev 与  npm install <package-name>@<version> 的区别

比如 npm install @edsp/apollo-form@4.0.0 --save-dev 和 npm install @edsp/apollo-form@4.0.0 的主要区别在于包的安装位置(即依赖类型),而不是包本身或版本。以下是具体分析:

1. ‌安装位置(依赖类型)
  • --save-dev‌:
    • 将包安装为开发依赖devDependencies)。
    • 开发依赖是仅在开发过程中需要的包,例如构建工具、测试框架等。
    • 这些依赖不会在生产环境中使用。
  • 不带 --save-dev‌:
    • 将包安装为生产依赖dependencies)。
    • 生产依赖是应用程序在生产环境中运行时需要的包。
2. ‌package.json 中的区别
  • 使用 --save-dev 时,包会被添加到 package.json 文件的 devDependencies 部分。
  • 不使用 --save-dev 时,包会被添加到 package.json 文件的 dependencies 部分。
3. ‌示例

3.1  使用 --save-dev

{"devDependencies": {"@edsp/apollo-form": "4.0.0"}
}

3.2  不使用 --save-dev

{"dependencies": {"@edsp/apollo-form": "4.0.0"}
}
4. ‌何时使用哪种方式
  • 使用 --save-dev‌:
    • 当你只需要在开发环境中使用该包时,例如构建工具(如 Webpack、esbuild)、测试框架(如 Jest、Mocha)等。
  • 不使用 --save-dev‌:
    • 当你需要在生产环境中使用该包时,例如应用程序的核心功能依赖。

  2、npm install <package-name>@<version>  和  yarn add <package-name>@<version> 有什么不一样吗

 比如   npm install @edsp/apollo-form@4.0.0  和 yarn add @edsp/apollo-form@4.0.0有什么不一样吗

npm install 和 yarn add 是两种常用的包管理工具命令,用于安装 Node.js 项目中的依赖包。虽然它们的功能相似,但在一些细节上有所不同。以下是它们之间的主要区别:

  1. 命令语法‌:
    • npm install <package-name>@<version> :使用 npm 安装指定版本的包,并将其添加到 dependencies中。
    • yarn add <package-name>@<version>:使用 yarn 安装指定版本的包。默认情况下,yarn 会根据上下文将包添加到 dependencies 或 devDependencies 中。如果当前目录有 package.json 文件,yarn 会根据文件中的 scripts 和其他配置自动判断。
  2. 锁文件‌:
    • npm 使用 package-lock.json 文件来锁定依赖的版本。
    • yarn 使用 yarn.lock 文件来锁定依赖的版本。
  3. 安装速度‌:
    yarn 通常比 npm 更快,因为它并行安装依赖,而 npm 则是顺序安装。
  4. 依赖解析‌:
    npm 和 yarn 在解析依赖时可能会有不同的行为,尤其是在处理依赖冲突时。
  5. 输出信息‌:
    npm 和 yarn 的输出信息格式不同,yarn 的输出通常更简洁和易于阅读。
  6.  清理缓存‌:
  • 对于 npm:npm cache clean --force
  • 对于 yarn:yarn cache clean

尝试使用不同的包管理工具‌:如果 npm 遇到问题,可以尝试使用 yarn,反之亦然。

3、 安装依赖时,显示There appears to be trouble with your network connection.

网络超时了,增加网络超时时间,使用 --network-timeout

例如:  

// yarn add <package-name> --network-timeout 100000      100000=100毫秒  yarn add @edsp/apollo-form@4.0.0 --network-timeout 100000

 4、 src/ package.json 中的依赖 版本与 node_modules包中 中的版本不一致

 比如 src/ package.json 中的 @edsp/apollo-form 版本与 node_modules/@edsp/ package.json 中的版本不一致,你可以通过以下步骤来更新 

src/package.json 中的版本:

(node_modules/@edsp/ package.json 中的版本变了,说明下载的@edsp/apollo-form成功了)

方法 1: 使用 yarn add 命令
  1. 直接更新版本‌:
    使用 yarn add 命令来指定你想要的版本。这将更新 package.json 中的版本,并重新安装该包。

    yarn add @edsp/apollo-form@4.0.0
    

    这条命令会将 @edsp/apollo-form 的版本更新为 4.0.0,并在 package.json 的 dependencies 中反映出来。

方法 2: 手动编辑 package.json
  1. 打开 package.json 文件‌:
    使用文本编辑器打开项目根目录下的 package.json 文件。

  2. 找到并修改版本‌:
    在 dependencies 部分找到 @edsp/apollo-form,然后将其版本更改为所需的版本(例如 4.0.0)。

    "dependencies": { "@edsp/apollo-form": "4.0.0", // 其他依赖项 
    }

  3. 重新安装依赖‌:
    保存 package.json 文件后,运行以下命令以重新安装所有依赖项,这将确保 node_modules 中的包与 package.json 中的版本一致。

    yarn install

验证更改
  • 检查 package.json‌:
    确保 package.json 中的版本已经更新为你指定的版本。

  • 检查 node_modules‌:
    你可以检查 node_modules/@edsp/apollo-form/package.json 文件中的 version 字段,以确认安装的版本是否正确。

注意事项
  • 版本兼容性‌:
    在更改版本之前,确保新版本的包与你的项目兼容。查看包的更新日志或文档以了解可能的变更。

  • 清理缓存‌:
    如果遇到安装问题,可以尝试清理 Yarn 缓存:

    yarn cache clean

    通过这些步骤,你可以确保 package.json 和 node_modules 中的 @edsp/apollo-form 版本一致。

5、依赖版本锁定

 当安装依赖时,报下面依赖版本的错误时,可以根据项目需要的版本进行锁定,表格锁定版本不一定使用你的项目,供参考给出的示例

依赖名称需锁定版本备注
@ctrl/tinycolor3.6.0
@adobe/css-tools4.2.0
babel-plugin-transform-jsx-condition0.1.2
axe-core4.6.3
iterator.prototype1.1.1
dompurify3.0.5
jackspeak2.3.3
domain-browser4.22.0
loglevel1.8.1
terser4.8.1使用 webpack v4 等项目锁定该版本
5.29.2使用 webpack v5 等项目锁定该版本
vite2.9.17vite@2.x 锁定该版本
@use-gesture/core10.3.0
@finclip/clender-compile1.0.36
uglify-js3.17.4
engine.io-client3.5.3

1. 锁定版本:

        package.json文件中增加resolutions配置

        

"resolutions": {"@ant-design/icons-svg": "4.2.1"
}

2. 组件市场组件模板锁定terser方式如下

        package.json文件中增加resolutions配置

        

"resolutions": {"react-styleguidist-jfrog/terser-webpack-plugin/terser": "5.29.2"
}// 或"resolutions": {"@cmbc/react-styleguidist/terser-webpack-plugin/terser": "5.29.2"
}

根据模板中使用的是react-styleguidist-jfrog或@cmbc/react-styleguidist进行选择使用

3. 安装依赖方式

resolutions为yarn配置,所以需使用yarn安装依赖(如果项目中存在yarn.lock文件,先删除再安装依赖)。如项目特殊情况必须使用npm安装依赖,请将上述依赖锁定在dependencies配置下,锁定方式同resolutions配置。

4. 如果依赖安装报node版本错误,例如下图,请执行 yarn --ignore-engines 命令安装依赖

npm 锁定版本方式

在 package.json 中配置 overrides 字段(注:需npm 8及以上版本),示例(只是示例具体配置根据项目实际情况来):

"overrides": {"vite": "2.9.17","@webassemblyjs/ast": "1.11.6","@webassemblyjs/wasm-parser": "1.11.6","terser-webpack-plugin": {"terser": "5.29.2"},"html-minifier-terser": {"terser": "5.29.2"}
}

将项目中所有 vite、@webassemblyjs/ast、@webassemblyjs/wasm-parser 安装为指定版本,terser-webpack-plugin 和 html-minifier-terser 所依赖的 terser 版本指定为 5.29.2,其余 terser 版本不受影响。

注意‌:由于 overrides 字段需要 npm 8 以上版本,但 pset npm 版本为 6.x,可将本地 npm 版本升级为 8.x 安装成功的 package-lock.json 进行提交,同时 pset 上使用 npm 构建,可使 pset 达到锁定版本的目的。

 

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

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

相关文章

Coze 实战教程 | 10 分钟打造你的AI 助手

> 文章中的 xxx 自行替换&#xff0c;文章被屏蔽了。 &#x1f4f1; 想让你的xxx具备 AI 对话能力&#xff1f;本篇将手把手教你&#xff0c;如何用 Coze 平台快速构建一个能与用户自然交流、自动回复提问的 xxx助手&#xff0c;零代码、超高效&#xff01; &#x1f4cc;…

【Spring Cloud Gateway】Nacos整合遇坑记:503 Service Unavailable

一、场景重现 最近在公司进行微服务架构升级&#xff0c;将原有的 Spring Cloud Hoxton 版本升级到最新的 2021.x 版本&#xff0c;同时使用 Nacos 作为服务注册中心和配置中心。在完成基础框架搭建后&#xff0c;我使用 Spring Cloud Gateway 作为API 网关&#xff0c;通过 N…

宝塔面板屏蔽垃圾搜索引擎蜘蛛和扫描工具的办法

首先进入宝塔面板&#xff0c;文件管理进入/www/server/nginx/conf目录&#xff0c;新建空白文件kill_bot.conf。然后将以下代码保存到当前文件中。 #禁止垃圾搜索引擎蜘蛛抓取if ($http_user_agent ~* "CheckMarkNetwork|Synapse|Nimbostratus-Bot|Dark|scraper|LMAO|Ha…

Docker拉取镜像报错Error response from daemon: Get “https://registry-1.docker.io/v2/“

记一次Docker拉取镜像的报错 使用docker拉取镜像时&#xff0c;出现报错 [rootcentos8 ~]# sudo docker pull mysql:8.0 Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.T…

Ansible模块——文件内容修改

修改文件单行内容 ansible.builtin.lineinfile 可以按行修改文件内容&#xff0c;一次修改一行&#xff0c;支持正则表达式。 选项名 类型 默认值 描述 attributesstrnull 设置目标文件的 Linux 文件系统属性&#xff08;attribute bits&#xff09;&#xff0c;作用类似于…

如何用PDO实现安全的数据库操作:避免SQL注入

如何用PDO实现安全的数据库操作&#xff1a;避免SQL注入 在现代Web应用程序中&#xff0c;数据库操作是核心功能之一。然而&#xff0c;SQL注入是一种常见的安全漏洞&#xff0c;攻击者可以通过恶意输入来操控数据库&#xff0c;从而获取敏感信息或破坏数据。使用PHP的PDO&…

使用大语言模型从零构建知识图谱(中)

从零到一&#xff1a;大语言模型在知识图谱构建中的实操指南 ©作者|Ninja Geek 来源|神州问学 还没有看过上篇的读者可以阅读《使用大语言模型从零构建知识图谱&#xff08;上&#xff09;》了解整个系列的内容 通过创建一个自定义流程来自动上传业务数据 在这一节&#…

pycharm连接github(详细步骤)

【前提&#xff1a;菜鸟学习的记录过程&#xff0c;如果有不足之处&#xff0c;还请各位大佬大神们指教&#xff08;感谢&#xff09;】 1.先安装git 没有安装git的小伙伴&#xff0c;看上一篇安装git的文章。 安装git&#xff0c;2.49.0版本-CSDN博客 打开cmd&#xff08;…

uniapp在APP上如何使用websocket--详解

UniApp 在 APP 端如何使用 WebSocket以及常见问题 一、WebSocket 基础概念 WebSocket 是一种在单个TCP连接上进行全双工通信的协议&#xff0c;适用于实时数据传输场景&#xff08;如聊天室、实时游戏、股票行情等&#xff09;。 与传统HTTP对比 特性WebSocketHTTP连接方式…

物联网赋能7×24H无人值守共享自习室系统设计与实践!

随着"全民学习"浪潮的兴起&#xff0c;共享自习室市场也欣欣向荣&#xff0c;今天就带大家了解下在物联网的加持下&#xff0c;无人共享自习室系统的设计与实际方法。 一、物联网系统整体架构 1.1 系统分层设计 层级技术组成核心功能用户端微信小程序/H5预约选座、…

【Linux】ELF与动静态库的“暗黑兵法”:程序是如何跑起来的?

目录 一、什么是库&#xff1f; 1. C标准库&#xff08;libc&#xff09; 2. C标准库&#xff08;libstdc&#xff09; 二、静态库 1. 静态库的生成 2. 静态库的使用 三、动态库 1. 动态库的生成 2. 动态库的使用 3. 库运行的搜索路径。 &#xff08;1&#xff09;原因…

渗透测试流程-中篇

#作者&#xff1a;允砸儿 #日期&#xff1a;乙巳青蛇年 四月廿一&#xff08;2025年5月18日&#xff09; 今天笔者带大家继续学习&#xff0c;网安的知识比较杂且知识面很广&#xff0c;这一部分会介绍很多需要使用的工具。会用各种工具是做网安的基础&#xff0c;ok咱们继续…

[创业之路-358]:从历史轮回到制度跃迁:中国共产党创业模式的超越性密码

人类文明的演进如同一条螺旋上升的阶梯&#xff0c;从原始社会的公有制到资本主义私有制的巅峰&#xff0c;再到社会主义对公有制的重构&#xff0c;每一次制度迭代都伴随着对前序文明的扬弃。中国共产党自诞生之日起&#xff0c;便以“为人类求解放”为使命&#xff0c;在革命…

NLP基础

目录 一、NLP 概述和应用 &#xff08;一&#xff09;NLP 的定义与演进历程 &#xff08;二&#xff09;NLP 的多元应用领域 二、文本预处理技术 &#xff08;一&#xff09;文本获取与编码转换 &#xff08;二&#xff09;文本清洗&#xff1a;去除杂质的精细打磨 &…

【数据结构与算法】ArrayList 与顺序表的实现

目录 一、List 接口 1.1 List 接口的简单介绍 1.1 常用方法 二、顺序表 2.1 线性表的介绍 2.2 顺序表的介绍 2.3 顺序表的实现 2.3.1 前置条件:自定义异常 2.3.2 顺序表的初始化 2.3.2 顺序表的实现 三、ArrayList 实现类 3.1 ArrayList 的两种使用方式 3.2 Array…

Linux518 YUM源仓库回顾(需查)ssh 服务配置回顾 特定任务配置回顾

计划配仓库YUM源 为什么我在/soft文件夹下 使用yum install --downloadonly --downloaddir /soft samba 为什么文件夹下看不到samba文件 exiting because “Download Only” specified 计划过 计划配SSH 参考 ok了 计划配置特定任务解决方案 code: 两端先配好网络 测试好s…

如何完美安装GPU版本的torch、torchvision----解决torch安装慢 无法安装 需要翻墙安装 安装的是GPU版本但无法使用的GPU的错误

声明&#xff1a; 本视频灵感来自b站 如何解决所述问题 如何安装对应版本的torch、torchvison 进入pytorch官网 进入历史版本 这里以cuda11.8 torch 2.1.0为例演示 根据文档找到要安装的torch、torchvison版本 但不是使用命令行直接安装 命令行直接安装可能面临着 安装慢…

【iOS(swift)笔记-9】WKWebView无法访问网络

对于iOS 在info中添加App Transport Security Settings&#xff0c;然后在App Transport Security Settings里添加Allow Arbitrary Loadstrue 对于macOS 除了上面的操作&#xff0c;还需在项目信息的App Sandbox里有个Network打钩选项

buck变换器的simulink/matlab仿真和python参数设计

什么是Buck电路? BUCK电路是一种降压斩波器&#xff0c;降压变换器输出电压平均值Uo总是小于输出电压UD。通常电感中的电流是否连续&#xff0c;取决于开关频率、滤波电感L和电容C的数值。BUCK也是DC-DC基本拓扑&#xff0c;或者称为电路结构&#xff0c;是最基本的DC-DC电路…

给个人程序加上MCP翅膀

背景 最近MCP这个词真是到处都是&#xff0c;看起来特别高大上。我平时没事的时候也一直在关注这方面的技术&#xff0c;知道它是怎么一回事&#xff0c;也懂该怎么去实现。但可惜一直抽不出时间来自己动手搞一个MCP服务。网上关于MCP的教程一搜一大把&#xff0c;但基本上都是…