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

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 达到锁定版本的目的。

 

相关文章:

  • FPGA:Xilinx Kintex 7实现DDR3 SDRAM读写
  • b站视频如何下载到电脑——Best Video下载器
  • 昆士兰科技大学无人机自主导航探索新框架!UAVNav:GNSS拒止与视觉受限环境中的无人机导航与目标检测
  • 算法第十八天|530. 二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
  • Agent Builder API - Agent Smith 扩展的后端服务(开源代码)
  • 学习机器学习的体会与姓名性别预测案例分析
  • 智能工具协同赋能STEM教育科研|探索LLM大语言模型和数学软件Maple的创新实践
  • 反向操作:如何用AI检测工具优化自己的论文“人味”?
  • 华为云Flexus+DeepSeek征文|基于华为云ModelArts Studio平台体验DeepSeek-V3大模型
  • idea中编写spark程序
  • npm install 报错
  • CMD(Command Prompt)和 Anaconda 的不同
  • c# 倒序方法
  • 数据结构(八)——查找
  • 2025-5-14渗透测试:利用Printer Bug ,NTLMv2 Hash Relay(中继攻击),CVE-2019-1040漏洞复现
  • 环境配置与MySQL简介
  • css设置文字两端对齐text-align:justify不起作用的解决方法
  • C++之fmt库介绍和使用(1)
  • 【数据分析】从TCGA下载所有癌症的多组学数据
  • 【SSL证书系列】SSL证书工作原理解读
  • 张涌任西安市委常委,已卸任西安市副市长职务
  • 第1现场 | 美国称将取消制裁,对叙利亚意味着什么
  • 国务院关税税则委员会公布公告调整对原产于美国的进口商品加征关税措施
  • 视频丨美国两名男童持枪与警察对峙,一人还试图扣动扳机
  • 这个“超强致癌细菌”,宝宝感染率高达40%,预防却很简单
  • 旭辉控股集团主席林中:债务重组是活下来的前提,自营开发业务收缩至少数核心城市