当前位置: 首页 > 知识库问答 >
问题:

前端 - pnpm patch 为项目打补丁成功,项目运行没生效?

邢寒
2024-06-03

我发现一个 el-form 的小问题,于是我在自己项目里决定为element-ui打个补丁。

项目 vite@3.0.2, vue@2.7.7, pnpm, element-ui@^2.15.14

我运行 pnpm path element-ui@^2.15.14, 然后改了提交了
image.png
根目录 patches 文件也生成了
image.png
package.json 也有相应的更改
image.png
node_modules 相应的代码也更改了
image.png
我运行代码后(pnpm dev) 该问题依旧存在,调试发现源码中依然没改
image.png
尝试了清除缓存(pnpm prune),或者删包(node_modules)重装,依旧没有解决,特来求助网上的大佬帮忙看看������

共有2个答案

单于善
2024-06-03

因为你改错文件了

element-ui 的入口模块文件是 /lib/element-ui.common.js

你要改这个文件才有效

呼延高超
2024-06-03

对于你提到的 pnpm patch 未能生效的问题,有几个可能的原因和相应的解决方案:

  1. 缓存问题:虽然你已经尝试清除缓存,但有时候缓存可能仍然影响。确保你的构建系统和开发服务器也清除了缓存。如果使用的是 Webpack,可以尝试重启 Webpack 开发服务器。
  2. 源码映射问题:调试时看到的源码可能不是实际运行的源码,而是因为源码映射(source map)导致你看到的是未修改前的源码。检查你的构建配置是否正确地处理了源码映射。
  3. 构建流程问题:确保你的构建流程正确地包含了 node_modules 中的修改。有时候构建工具会忽略 node_modules 中的变化,或者使用了缓存的构建输出。
  4. pnpm patch 应用问题pnpm patch 可能没有正确地将补丁应用到 node_modules 中的 element-ui 包。虽然你提到了 node_modules 中的代码已经更改,但可能并没有正确应用到所有的文件或所有的入口点。
  5. 其他依赖问题:确保没有其他依赖项或插件干扰了 element-ui 的行为。有时,即使 element-ui 本身被修改,其他依赖项也可能覆盖或影响这些更改。

解决方案

  • 确保你的开发服务器和构建系统都已重新启动,并且清除了所有可能的缓存。
  • 检查并确认源码映射是否正确设置,并且你的调试工具正在使用正确的源码。
  • 重新运行 pnpm patch,并检查是否有任何错误或警告输出。
  • 如果可能,尝试手动修改 node_modules/element-ui 中的文件,以确认直接修改是否能解决问题。这可以帮助确定问题是否确实与 pnpm patch 相关。
  • 检查你的项目是否还有其他地方(如 Webpack 配置、Babel 插件等)可能影响到 element-ui 的行为。

如果上述方法都不能解决问题,可能需要更深入地调查你的项目配置和 pnpm patch 的使用方式。由于 pnpm 是一个相对不那么流行的包管理器,社区和官方文档可能不像 npmyarn 那样丰富,因此你可能需要查阅更具体的文档或寻求 pnpm 社区的帮助。

 类似资料:
  • 生成项目 $ npm i -g koa-generator $ koa2 mvc $ cd mvc $ nrm use cnpm $ npm i 至此准备完事儿 $ npm start 然后打开http://127.0.0.1:3000/,测试koa 打开代码,说明一下koa2的代码结构,并点评async,如何替换成其他写法。 修改2处,使得async写法,变为commonfunction形式

  • 我试图在android studio模拟器上运行我的react原生项目,但当我构建它时,出现了这个错误: 任务“:App:SigningConfigWriterDebug”执行失败。accessDeniedException:d:\courses\reactNative-thePracticalGuide\myFirstApp\android\app\build\intermediates\sig

  • 问题内容: 是否有Maven的“阶段”或“目标”来简单地执行Java类的主要方法?我有一个项目,希望通过简单地执行诸如“ mvn run”之类的操作来进行手动测试。 问题答案: 请参阅exec maven插件。你可以使用以下命令运行Java类: 调用就像插件配置在中一样简单。Mojohaus上的插件站点上有一个更详细的示例。

  • 我用无数次的谷歌搜索尝试了这么多次。但这行不通。它给出了一个BeanCreationException。 pom.xml```https://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0 org.springframework.Boot spring-boot-starter-parent 2.2.6.release com.example Registe

  • 我在Eclipse上遇到了大麻烦 我下载了最新的ADT包,然后新建了一个新的Android项目,但出现了一个错误: 然后我用谷歌搜索了一下,发现了一些建议,比如新的工作空间,但还是不行 而我发现一个奇怪的现象,java编译器总是改成1.4,而jre总是缺失,每次工作空间改变时都会发生 新项目也很奇怪 我选择项目的属性,另一个错误发生在选择Android时 然后我google错误,发现一个解决方案是