Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 代码发布 › 「技术教程」如何在项目中使用一个自定义的npm模块 | 如何使用一个魔改后的npm模块

「技术教程」如何在项目中使用一个自定义的npm模块 | 如何使用一个魔改后的npm模块

Eswlnk的头像
Eswlnk
2024-03-29 12:22:08
「技术教程」如何在项目中使用一个自定义的npm模块 | 如何使用一个魔改后的npm模块-Eswlnk Blog
智能摘要 AI
本文介绍了一种在不修改全局引入方式的情况下,对 `node_modules` 中的模块进行自定义修改的方法。主要步骤是将修改后的模块文件放置在项目根目录下的 `my_modules` 文件夹中,并通过 `pnpm link --global` 命令将其链接为全局模块。具体操作包括: 1. 将修改后的模块打包并放置在 `my_modules/test` 目录下,确保包含 `dist` 文件夹和 `package.json`。 2. 使用命令 `pnpm link --global` 在修改后的模块目录中创建全局链接。 3. 返回项目根目录,使用 `pnpm link --global test` 完成链接。 此外,提供了一个

前言

一般情况下确实用不到这种极端处理方案,因为有名的插件依赖,基本上能碰到的bug情况是非常少见的。

这篇文章解决的问题是:

将 node_modules 中的模块自己修改后,又不想影响全局引入方式,或者说不方便去修改该模块的引入的时候使用的。

教程中使用的是pnpm方式,如果你使用npm或者yarn,原理是一样的,可以参考完再自己去看对应的命令使用方式,大差不差的。

「技术教程」如何在项目中使用一个自定义的npm模块 | 如何使用一个魔改后的npm模块-Eswlnk Blog

教程

假设我们已经将模块自己改好并打包好了,此时我们一般会得到一个dist目录,这个是模块打包后的产物,假设这个模块在node_modules中的文件夹夹名字是test,那么你就需要将dist放置在自己新创建的test目录下,注意一般还有一个package.json文件,这个必须是在test根目录下存放(入口)。

大部分情况下这个package.json是共享的,你自己将模块项目中的package.json复制到test目录下即可。

当然这种方式不适用于所有情况,这个需要取决于模块的打包处理方式,dist也不一定就一定要在test目录下,这个要看package.json中的配置。

这里就不细说了,这不是本文重点。

假设我们已经正确得到了修改后的模块内容,我们可以将其存放在项目目录下,我是放在项目根路径下的my_modules目录中。

/my_modules/test
            ---- dist
            ---- package.json

下面就准备将test设置全局模块:

# 先进入到魔改的test模块目录下
cd 项目根目录/my_modules/test

# 使用link
pnpm link --global

等待设置完成后,在回到项目根目录:

cd 项目根目录

pnpm link --global test

注意 --global后面接的test就是刚刚link的目录名。

此时我们就实现了将项目中node_modules 里面的test硬链接成了/my_modules/test魔改的模块。

注意完事后不要重新安装依赖了,安装了你又得来一遍上述操作。

此时我们不管是dev启动项目,还是build打包,都会使用的魔改后的内容。

这种方式可以用于临时解决问题,短期内的方案。

bash脚本自动替换

由于每次pnpm i安装依赖就要这么处理一次,有点麻烦,所以我写了个脚本,目前测试windows和linux都是可以使用的,注意的是windows请用bash命令程序,比如git Bash运行。

#!/bin/bash

# 获取脚本所在的目录
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)

# 替换这里的路径为你需要的第一个目录路径
first_directory_path="$SCRIPT_DIR/my_modules/test"
# 替换这里的路径为你需要的第二个目录路径
second_directory_path=$SCRIPT_DIR

# 切换到第一个目录
cd "$first_directory_path" || exit
# 在第一个目录中运行pnpm link --global
pnpm link --global

# 切换到第二个目录
cd "$second_directory_path" || exit
# 在第二个目录中运行pnpm link --global vuetify-notifier
pnpm link --global vuetify-notifier

自己替换first_directory_path路径,然后保存为:fix.sh文件。

linux需要用下面的命令提权,以防无法调用成功。

chmod +x ./fix.sh

这样给脚本提供权限,然后运行它:./fix.sh。

如果是windows,一般不需要提权,直接运行:./fix.sh

这样就能一键实现上述效果了。

本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
npmvueyarn魔改
1
0
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
「教程分享」在Debian上使用Docker轻松安装Emby
上一篇
「主题改造」Typecho使用highlight.js代码高亮实现代码行号
下一篇

评论 (0)

请登录以参与评论
现在登录
    发表评论

猜你喜欢

  • 「日志记录」逆向必应翻译网页版API实现免费调用
  • 「代码分享」第三方平台VIP视频解析API接口
  • 「至臻原创」某系统网站登录功能监测
  • 「开发日志」在Vue3中如何为路由Query参数标注类型
  • 「其他分享」分享一个在Tun模式下可用的脚本
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

「技术分享」解密凡科网滑块验证:逆向JS、base64解码与Selenium应用
2024-04-26 13:03:34
「进程注入」通过远程线程注入代码
2022-12-23 17:04:17
「代码分享」深入理解 JavaScript 的发布订阅模式 | 实现灵活的消息通信与事件管理
2024-04-24 12:17:49

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.426 秒   |  SQL查询 26 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈