首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一文搞懂peerDependencies

根据错误提示,这应该是 React Hooks 报错,通过排除法,确认是我之前封装一个组件有问题,这个组件是通过npm安装使用。...如果这些 react 依赖解析为两个不同导出对象,你就会看到本警告。...,同一插件体系下,核心依赖库版本最好是相同; 举个栗子: 假设现在有一个 helloWorld 工程,已经在其 package.json dependencies 中声明了 packageA,有两个插件...而 peerDependency 就可以避免类似的核心依赖库被重复下载问题。...中声明版本将库安装到项目根目录中; 当用户依赖版本、各插件依赖版本之间不相互兼容,会报错让用户自行修复; 总结 明白了 peerDependencies 用法,那么回到开头问题来,问题就迎刃而解了

76720

npm ERR! ERESOLVE unable to resolve dependency tree解决方法

true 什么是 peerDependency 在 package.json 文件中,存在一个叫做 peerDependencies(对等依赖关系)对象,它包含了项目里需要所有的或用户正在下载版本相同所有的...意思就是对等依赖关系指定我们与某个特定版本 npm 兼容。 对等依赖关系最好例子就是 React ,一个声明式创建用户界面的 JS 库。...而方式 2 就会导致一个问题:用户依赖版本与各个子项目依赖版本相互不兼容,那么就会报错(无法解析依赖树问题(依赖冲突))让用户自行去修复,因而导致安装过程中断。...legacy 意思:遗产/(软件或硬件)已过时但因使用范围广而难以替代; 而 npm install xxxx --legacy-peer-deps 命令用于绕过 peerDependency 里依赖自动安装...; 它告诉 npm 忽略项目中引入各个依赖模块之间依赖相同版本不同问题,以 npm v3-v6 方式去继续执行安装操作。

2.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

你真的了解package.json吗?

许可证 版本 主要特点 GNU通用公共许可证(GPL) 2.0 允许使用、修改、复制和分发软件,要求在修改后软件中保持相同GPL许可协议。...peerDependencies peerDependencies 字段用于指定一个依赖于其他特定版本。...使用 peerDependencies 主要目的是确保在整个项目中使用相同版本某个,以防止出现不一致依赖关系导致问题。这有助于确保之间协同工作,并降低由于版本不一致而引起潜在问题。...使用不同标签,例如 beta,允许用户使用npm install @beta安装软件特定版本。...当我们运行 npm install 时,npm 使用 package-lock.json 中信息确定要安装软件的确切版本,并以与原始安装相同顺序和相同依赖项安装它们。

9310

你真的了解package.json吗?

许可证 版本 主要特点 GNU通用公共许可证(GPL) 2.0 允许使用、修改、复制和分发软件,要求在修改后软件中保持相同GPL许可协议。...使用 peerDependencies 主要目的是「确保在整个项目中使用相同版本某个,以防止出现不一致依赖关系导致问题」。...使用不同标签,例如 beta,允许用户使用npm install @beta安装软件特定版本。...当我们运行 npm install 时,npm 使用 package-lock.json 中信息确定要安装软件的确切版本,并以与原始安装相同顺序和相同依赖项安装它们。...其他包管理器 尽管 npm 是最流行包管理器之一,很多人也使用其他包管理器,如 yarn、pnpm 或 turbo。

14310

前端工程化之概念介绍

文件/文件夹 文件含义 1) package.json npm 依赖管理体系下基础配置文件 2) 包管理器 使用 npm 或 Yarn,会在项目里添加上对应 lock 文件,「确保在不同环境下部署项目时依赖稳定性...React 否 是 React 官方维护 Vue CLI Vue 是 是 Vue官方维护 「CRA」: Facebook 官方提供 React 开发工具集, 包含两个基础 自定义配置能力 react-app-rewired...为 CRA 创建自定义模板 作为一个最简化 CRA 模板,模板中包含如下必要文件 README.md:用于在 npm 仓库中显示「模板说明」 package.json:用于描述模板本身「元信息」,...例如名称、运行脚本、依赖名和版本等 template.json:用于描述基于模板创建项目中 package.json 信息 template 目录:用于「复制」到创建后项目中,gitignore...在复制后重命名为 .gitignore,「public/index.html和src/index 为运行 react-scripts 必要文件」 对应目录结构如下: cra-template-[template-name

72610

Create React App 源码揭秘

不同于常见每个模块都需要建一个repo。 babelpackages目录下存放了多个。 monorepo优势 Monorepo最主要好处是统一工作流和代码共享。...是一个管理多个npm模块工具,有优化维护多个工作流,解决多个互相依赖,且发布需要手动维护多个问题。 前往lerna查看官方文档,下面做一个简易入门。...# 显式发布在当前提交中标记 $ lerna publish from-package # 显式地发布注册表中没有最新版本 第一次发布报错 原因 第一次leran publish发布时会报错..., cra-template这两个,先使用现有的。...先来了解下使用node_modules模式机制 将依赖版本区间解析为某个具体版本号 下载对应版本依赖tar 报到本地离线镜像 将依赖从离线镜像解压到本地缓存 将依赖从缓存拷贝到当前目录node_modules

3.5K20

包管理工具

node_modules 不同依赖解析算法,嵌套 VS 扁平化 不同安全问题 不同锁文件格式,有性能影响 在磁盘上存储不同方式,对磁盘空间有效率影响 对多(单一代码库)项目的不同支持 不同程度可配置性和灵活性...确定性 不管安装顺序如何,相同依赖关系将在每台机器上以相同方式安装 网络性能 Yarn 有效地对请求进行排队处理,避免发起请求如瀑布般倾泻,以便最大限度地利用网络资源 相同软件npm 安装软件并保持相同包管理流程...虽然 Yarn 速度优于 npm,但是它使用相同依赖解析方法 现在前端项目越来越庞大,复杂。很多时候有成百上千依赖,每次安装都需要一定时间,并且大量浪费磁盘空间。...#它是如何工作? 官网介绍 如果依赖于依赖项不同版本,则只有不同文件才会添加到存储区。...解决不是平铺目录所带来问题,而是解决 npm v3 版本之前树结构依赖问题 我们先创建两个目录进行比较,先建立一个 npm 包管理项目,然后在建立一个 pnpm 包管理项目 npm init

2.7K20

类型即正义:TypeScript 从入门到实践(序章)

确保你有一定命令行使用基础,包括使用 Npm (Node.js 包管理工具)来安装。...,但是为了更好定制样式和按需引用以减小打包之后体积,我们还需要做一点定制化操作,打开命令行,依次安装如下依赖: $ npm install react-app-rewired customize-cra...,使用 override API,接收两个修改配置函数调用,fixBabelImports 用于配置 antd 按需引用,addLessLoader 用于配置 antd 主题,这里我们使用了 Ant...上面的代码主要就是一系列初始数据准备,antd 组件使用,编写起来大致轮廓,还没有涉及到任何 TS 语法,这个是我们开始项目的基础,读者只需要进行简单复制放进现有的 typescript-tea...antd 组件库,并使用 react-app-rewired 替换默认 react-scripts 来完成对 CRA Webpack 配置进行修改,以是我们可以获得 antd 组件按需引用和主题定制功能

1.5K20

【前端部署第四篇】使用 Docker 构建缓存及多阶段构建优化单页应用

终于可以来一个与真实项目接近带有复杂度项目,以 CRA 部署为例: 「部署一个 Creact React APP2 单页应用。」...构建时间优化: 构建缓存 我们注意到,一个前端项目的耗时时间主要集中在两个命令: npm install (yarn) npm run build 在本地环境中,如果没有新 npm package 需要下载...构建体积优化: 多阶段构建 我们目标静态资源,完全不需要依赖于 node.js 环境进行服务化,而 node.js 环境将造成极大资源浪费。...第一阶段 Node 镜像: 使用 node 镜像对单页应用进行构建,生成静态资源 第二阶段 Nginx 镜像: 使用 nginx 镜像对单页应用静态资源进行服务化 该 Dockerfile 配置位于...小结 本篇文章,通过构建缓存与多阶段构建优化了体积和时间,然而还有两个个小问题需要解决: 单页应用路由配置 单页应用缓存策略 ---- 参考资料 [1] 点击查看活动详情:https://juejin.cn

1.4K20

NPM 组件你应该知道

一份代码,多种消费方式 使用新特性语法,由于一般项目中,会默认不对 node_module 中库进行编译以提高整个项目的编译速度,所以作为 npm ,要转换成 es5 ,免得消费方吐槽…… 打包格式...esm 如果是用 npm 组件来使用, 都推荐使用这种导出模式。...函数级别 /*@__PURE__*/ 声明函数无副作用 只要我们基本保证这个组件没有对外部对象产生影响,就能设置 sideEffects: false 了 举个栗子:设置了 sideEffects:...image.png 更深入 sideEffect 可以看看这篇文章[2]: peerDependency 对于消费方可能也用到组件,写到 peerDependency 中。看下面一张图就可以理解。...node_modules 不安装 react,同时指定组件库使用方需安装 react/reactDOM 版本

1.6K20

Ant Design Landing

最近在做一些SAAS产品,Landing page——落地页对于SAAS类产品重要性不言而喻。之前有想过用wordpress找一些比较漂亮模板,想想觉得这个方案对于初期产品来说还是有点重了。...我们直接在create-react-app里使用 Ant Design Landing 模板,create-react-app 是业界最优秀 React 应用开发工具之一,也可以直接下载官方给出Demo...--save;// 如果用是多屏滑动型 banner,加上这条; npm install @ant-design/compatible --save;// 如果使用了 Content7 模块,请加上这条...; 按需加载ant design npm install babel-plugin-import --save-dev; less加载: npm install react-app-rewired customize-cra...npm install npm start 遇到问题 其中遇到了一个 Module not found: Can't resolve './serviceWorker' in ..

1.7K11

react Cannot find module node_modules_react-scriptsconfigwebpack.config.dev

原来运行得好好react项目,突然运行不成功了,提示如下错误 $ npm start > react-app-rewired start internal/modules/cjs/loader.js...\AppData\Roaming\npm-cache\_logs\2019-01-19T10_56_58_751Z-debug.log 经过四处寻找,在github找到了原因解释,只不过他解释是针对使用了...ts下react项目,但是原理相同内容如下 This has been caused by recent changes to CRA (2.1.2) where they merged the webpack.config.dev.js...需要将react-app-rewired版本固定在1.6.2,这样处理能解决上面的问题, 但是又出现了一个新问题,大致内容是can not find module react_script/package.json...分析应该也是版本问题导致,所以通过git版本回退找到了以前代码package.json中react_script使用版本是2.0.3,所以将版本也固定在了2.0.3 删掉node_modules

96920

刚输一行代码就报5次假漏洞,npm让程序员们累觉不爱

所以,npm audit问题到底出在哪? 过度报错令人头大 发帖吐槽程序员小哥用一个非常生动形象比喻指出了问题关键。...由于多个工具依赖于目标浏览器相同配置格式,因此Create React App使用共享browserslist来解析配置文件。 所以这里漏洞是什么?...问题是,如果都有人能访问你电脑并更改配置文件了,那你要面临情况恐怕比这要糟糕上百倍啊! 所以这个所谓“中等级别漏洞”,真的既不是中等,也不是漏洞。 再来看看第二个“漏洞”。 ?...这么多人在大量不同项目中报告,无论如何这都很烦人,因为他们破坏了npm audit机制。 修复所有可能漏洞是好事,但是他们夸大了漏洞严重程度。 ?...例如Vite和Next.js都只是将它们依赖项直接捆绑在里,而不是依赖于npmnode_modules机制。

52920

Create React App v3 + Webpack v4 多页应用配置

多页面配置(npm run eject)[1]、「Webpack」配置React多个页面同时打包和调试[2]后发现有问题,一直卡在编译中,也不报错,于是记录一下解决过程。...安装、运行 create-react-app # 卸载旧版 create-react-app npm uninstall -g create-react-app # 使用 npx 安装最新版 npx...复盘 版本、时效性 参考网上文章时,需要注意一下文章时间和依赖库版本,尤其当有大版本变化时,要慎重,避免花费过多时间在可能错误方向上;尽可能多花一些时间在时效性较高资料,从而提升解决问题概率。...ps:本文之前参考文章多数是基于 create-react-app v2 ,而实际自己使用CRA v3 版本。 错误日志 另外一个影响解决速度原因是:没有报错信息。...Done~ 感谢阅读到这里~ 也感谢分享相关资料大佬们~ 参考资料 [1] React-CRA 多页面配置(npm run eject): https://segmentfault.com/a/1190000016960824

1.4K20

JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件

本篇教程是 JavaScript 测试系列实战 第一篇教程,首先介绍了测试类型,然后主要通过一个 React 项目教会你如何使用 Jest 编写第一个测试,然后使用 Enzyme 对 React 组件进行浅层渲染...首先用 Create React App(CRA)搭建项目脚手架: create-react-app javascript-test-series 然后我们删除 src 目录下所有预创建文件(当然你也可以手动删除...函数不同,测试一个 React 组件还需要两个关键问题:1)怎么渲染待测试组件;2)怎么测试渲染出来组件。...所幸是,Airbnb 作为重度使用 React 先驱,早就提出了专门解决方案:Enzyme。...小结 在过去两个小节中,我们了解、安装和配置了 Enzyme,并且接触了 shallow 浅层渲染这个单元测试利器,并且循序渐进测试了两个 React 组件。

2.9K10

Vite前端项目搭建从0到1

版本:node -v推荐 12.0.0 及以上版本,如果低于这个版本,推荐使用 nvm 工具切换 Nodejs 版本。...安装完 Nodejs 之后,包管理器npm也会被自动安装,你可以执行下面的命令来验证:npm -v当然,在现代前端项目中,我非常不推荐使用 npm 作为项目的包管理器,甚至也不再推荐yarn(npm...替代方案),因为两者都存在比较严重性能和安全问题,而这些问题在 pnpm 中得到了很好解决,更多细节可以参考我这篇博客: 关于现代包管理器深度思考——为什么现在我更推荐 pnpm 而不是 npm...我曾经拿 react 官方基于 Webpack 脚手架create-react-app,也就是大家常说cra来测试过,Vite 已经比 cra 快了接近 6 倍,并且一开始就甩了 cra 一大截,显而易见地提升了初始化速度和开发体验...上述两个语句则分别代表了两个不同请求,Vite Dev Server 会读取本地文件,返回浏览器可以解析代码。

50180

使用mono-repo实现跨项目组件共享

因为他是跟业务强绑定,即使我将它作为一个单独NPM发布出去,公司其他项目也用不了。一个不能被其他项目共享NPM,始终感觉有点违和呢。...比如修某个BUG需要同时改react-router-dom和react-router代码,如果他们在不同Git仓库,需要在两个仓库里面分别修改,提交,打包,测试,然后还要修改彼此依赖版本号才能正常工作...但是使用了mono-repo,因为他们代码都在同一个Git仓库,我们在一个commit里面就可以修改两个项目的代码,然后统一打,测试,发布,如果我们使用了lerna管理工具,版本依赖也是自动更新...如果是0.0.0这种具体版本号,那lerna管理所有子项目都会有相同版本号----0.0.0,如果你设置为independent,那各个子项目可以有自己版本号,比如子项目1版本号是0.0.0,子项目...这会导致一个问题,如果多个子项目依赖同一个第三方库,但是需求版本不同怎么办?

3K41
领券