管理 2 个以上具有依赖关系的 Nodejs 包的开发

2024-04-24

我正在开发 2 个 node.js 包,每个包都在自己的 git 存储库中管理。包裹B取决于套餐A,所以我的本地目录结构如下所示:

A1/
B/
  node_modules/
    A2/

如果我更改本地代码A1,我想测试一下B在将其推送到公共存储库之前。我怎样才能做到这一点?

以目前的状态来说,B有它自己的本地副本(A2),所以它引用了不同的版本。B是一个公共包,所以我想避免直接修改源代码B参考A1.

一种可能的解决方案是拥有 2 个本地副本B: B1是已发布的公共版本,它有自己的本地依赖项A2, and B2是我自己的私人版本,直接引用A1使用类似的东西require('./../A1').

A1/
B1/
  node_modules/
    A2/
B2/

这看起来有点丑陋(并且会迫使我保留 2 个副本B),我想知道是否有推荐的方法来处理这种情况?

Thanks.


在最简单的情况下,符号链接就可以解决问题。但您可以更进一步,使用某种奇特的构建系统,如 grunt、gulp 等。 我在所有项目中都使用经典的 make 脚本。因此,您可以在测试之前将一个项目复制到另一个项目中,例如:

NPM = /usr/bin/env npm
MODULES = ./node_modules/
PROJECTS_PATH = ../
DEPENDENCY = project_a/

default: test

test: copy
    $(NPM) test

copy:
    @rm -rf $(MODULES)$(DEPENDENCY)
    @cp -r $(PROJECTS_PATH)$(DEPENDENCY) $(MODULES)$(DEPENDENCY)

install:
    @rm -rf $(MODULES)
    $(NPM) install

.PHONY: test

它不是最好的构建脚本,但它可以完成这项工作。大多数 UNIX 系统都会有make安装。所以它也非常便携。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

管理 2 个以上具有依赖关系的 Nodejs 包的开发 的相关文章

  • 将图像从 JQuery 上传到 Node JS

    我需要从我的网站上传图像文件HTML页 但是 我不会使用form标签 因为还有其他form稍后将用于将数据传递到服务器的字段 文本字段 复选框等 我的后端在Node JS 我想要的只是从Node Js结尾 我怎样才能做到这一点 HTML d
  • 更改用户名 Github “您必须验证您的电子邮件地址” git Push 上出现 403 错误

    我最近在 github 上更改了我的用户名 以便所有内容都重定向到我用户名上的新 URL 我通过命令行收到此错误git push 您必须验证您的电子邮件地址 致命 请求 URL 返回错误 403 但是 github 不允许我在帐户 gt 设
  • 如何在测试用例失败时在量角器中截取屏幕截图

    我是量角器的新手 想在浏览器中截取失败的测试用例的屏幕截图 您能帮我建议一下我该怎么做吗 谢谢 您可以使用protractor jasmine2 screenshot reporter为此 它有一些很好的功能可以满足您的目的 var Htm
  • 在 ES6 Node.js 中导入“.json”扩展名会引发错误

    我们正在尝试使用 Node js 导出和导入 ES6 模块的新方法 对于我们来说 从package json文件 下面的代码应该做到这一点 import name version from package json 但是 执行时会抛出以下错
  • 如何通过ajax点击时从javascript文件执行节点(控制台)命令

    我是 Node js 新手 这是我的问题 例如 我得到了 Web 应用程序 并且从该应用程序中我有一个按钮 单击按钮后我想运行节点控制台命令 例如 node socket io So button on click function run
  • Git Grep 颜色选项解释和/或比较

    我正在尝试自定义我的 Git 颜色 读完后文档 https git scm com docs git config 我找到了我想要设置的选项 除了 Grep 之外 一切都工作正常 我意识到 我过去并没有真正使用过它 我想用相同的调色板为其设
  • 如何/在哪里发布 Python 包

    如果一个人创建了一个有用的 Python 包 那么如何 在哪里发布 宣传它以供其他人使用 我已经把它放到了 github 上 但几周后谷歌也没有找到它 包装整洁完整 我制作它供我个人使用 不与其他人分享将是一种耻辱 这是 PyPI 指南 h
  • go:找到模块但不包含包

    我正在尝试安装 go 的网络包 但收到 不包含包错误 终端截图 我咨询过 go 模块 latest 已找到但不包含包 https stackoverflow com questions 62974985 go module latest f
  • 通过 Git/SVN 将前缀 ? 添加到代码中

    怎么加前缀 v VersionNumber使用 Git SVN 高效地访问存储库中的每个文件 我发现 SO 使用这种做法为其存储库中的每个特定文件提供版本号 他们使用SVN 我想知道如何使用 Git 做同样的事情 举几个例子 1 2 在你的
  • 在客户端将大文件(> 2GB)压缩为 ZIP

    我使用构建上传工具node js and socket io 因为他们通常会上传令人难以置信的巨大文件 而普通的上传表单将无法工作 问题是他们想在发送之前将文件压缩成zip 以提高传输效率 我一直在研究压缩方法 例如JSZip http s
  • 使用 GIT_PS1_SHOWCOLORHINTS 自定义 __git_ps1 的颜色

    我尝试过的 我已更新我的提示以包含分支名称 git ps1 另外 我设置GIT PS1 SHOWCOLORHINTS 问题 提示正确显示 然而 树枝的颜色始终是绿色的 我预计肮脏的树枝会是红色的 文档指出 颜色基于 git status s
  • 保存 Mongoose 文档时出现版本错误

    我有一个问题 不确定我是否做错了什么或者这是一个错误 我有一些产品 每一种都有一系列的变体 我想浏览一些数据并以这些变体加载它 但我遇到了许多 版本错误 找不到匹配的文档 错误 认为我遇到了竞争条件 我为我修改的每个变体依次保存相同的文档
  • 角度抛出错误 $parse:ueoe 表达式意外结束

    我网站的这一部分有错误 我无法弄清楚 因为我几个月没有更改它 错误是 Error parse ueoe http errors angularjs org 1 4 3 parse ueoe p0 event id 3FEventContro
  • Mongoose Date.now 时间不准确

    在过去的两个小时里 我一直在抓狂 起初我以为 Moment js 是没有返回正确时间的罪魁祸首 但其实是 mongoose Date now 做了一些邪恶的事情 这是代码 const moment require moment const
  • 部署在aws上时如何使用环境变量

    我正在构建一个在本地利用环境变量的 Web 应用程序 我想将其投入生产 在线 我正在尝试了解如何在 AWS 上设置环境变量 这是一个 Node js 应用程序 我在 AWS 上使用 Elastic beanstalk 进行部署 我已经看过了
  • 节点 --experimental-modules,请求的模块不提供名为的导出

    我已经安装了 Node 8 9 1 v10 5 0 中也出现同样的问题 我正在尝试在文件中使用来自 npm 包的命名导入 mjs import throttle from lodash I run node experimental mod
  • 如何在 NetBeans 中执行“git Blame”?

    NetBeans 内置了对 git 的支持 我可以做一个git blame在 NetBeans 内 如果是这样 怎么办 I googled https www google nl search q netbeans git blame它 但
  • git 奇怪的彩色终端响应[重复]

    这个问题在这里已经有答案了 最近我被下面的彩色终端响应吓死了 它是由 git push 命令触发的 Does anybody have a clue where this colored response comes from 只是猜测 但
  • Git Bash Shell 可以使用默认的 Windows 快捷方式进行复制和粘贴吗?

    我希望能够使用 Ctrl C 和 Ctrl V 复制并粘贴到 Git Bash Shell 中 但是 shell 具有 Ctrl Insert 和 Shift Insert 作为这些操作 我没有看到更改这些快捷键的明显方法 我错过了一些明显
  • Material UI Icons npm 安装问题:无法解析依赖树

    问题已解决 问题末尾的解决方案 我试图安装材质 UI 图标 https mui com components material icons 在我使用 npm 的 Netflix Clone React js 项目中 但出现以下错误 PS D

随机推荐

  • 正确结束 Java 命令行应用程序

    我只是想知道 我需要打电话吗System exit 0 就在之前mainJava 命令行应用程序的方法结束了吗 如果是这样 为什么 如果我总是放在那里 与让它自行退出有什么区别0 什么没清理干净 提前致谢 不 您并不总是需要打电话Syste
  • 如何在张量流中将TextVectorization保存到磁盘?

    我已经训练了一个 TextVectorization 层 见下文 我想将其保存到磁盘 以便下次可以重新加载它 我努力了pickle and joblib dump 这是行不通的 from tensorflow keras layers ex
  • 如何在文本文件中逐行读取和替换字符串?

    我有一个文本文件 内容如下 INSERT INTO shops VALUES 3 1000000 0 INSERT INTO shops VALUES 3 1000010 0 INSERT INTO shops VALUES 3 10000
  • 对内核模块代码进行单元测试是否可行?

    如果是这样我应该使用什么技术 我正在考虑使用 hippomock 因为它们可以用来模拟 C 方法 还有更好的方法吗 如果是这样 任何人都可以提供建议 或者您认为内核的单元测试是否太过分了 从 Linux 内核版本 5 5 开始KUnit可用
  • 如何绕过mysql中无效的utf8字符串

    我有一个包含阿拉伯文本数据的大文本文件 当我尝试将其加载到 MySQL 表中时 出现错误消息Error code 1300 invalid utf8 character string 这是我到目前为止所尝试过的 LOAD DATA INFI
  • 无法通过 Socket.IO 从 cookie 获取 Express 会话 ID

    我在 Node 中有一个典型的 Web 应用程序 它利用 Express 框架和会话中间件 我还将 Socket io 用于应用程序的某些动态部分 目前 这是一种聊天机制 但这是无关的 我已经能够成功地自行设置会话和socket io 但希
  • 将 Flex ByteArray 转换为 Java byte[]

    我正在尝试将使用 rtmp 协议从 Flex GUI 发送的文件上传到服务器上 我昨天问如何在服务器上发送文件数据 通过rtmps java上传文件到服务器 https stackoverflow com questions 2310855
  • Swift 中的拖放 - 注册拖动类型时出现问题?

    背景 我正在尝试在 Swift 中进行一些简单的拖放操作 类似于 Apple 的示例代码可可拖放 https developer apple com library mac samplecode CocoaDragAndDrop Intro
  • Drupal 8自定义块(模块)创建twig模板文件

    我有一个自定义模块 它创建一个具有字段元素的自定义块 这一切都很好 但我需要为这个块设置主题 我检查了这里的其他帖子并尝试过但没有成功 我已经启用了 twig 调试并获得了主题建议 还是没有运气 谁能指出我正确的方向 这是我到目前为止所拥有
  • 使用 apply 函数重写循环

    我有以下 3 个函数 我想使其更快 我认为应用函数是最好的方法 但我从未使用过应用函数 所以我不知道该怎么做 任何类型的提示 想法和代码片段将不胜感激 n T dt 是全局参数 par 是参数向量 函数 1 是创建 m 1 n 矩阵的函数
  • 如何将 Heroku PG 转储导入本地计算机

    我正在尝试将生产 Heroku 数据库导入到我的开发机器中 我的本地数据库是 PostgreSQL 首先 我将转储从 Heroku 导出到我的机器 curl o latest dump heroku pgbackups url 然后 我尝试
  • Java 中的事件顺序

    我有两个独立组件的两个事件 但有一个问题 JTabbedPane 的 stateChanged 事件在 JFormattedField 的 focusLost 事件之前触发 有没有办法使 stateChange 事件在 focusLost
  • Qt 中浮点数的强制点而不是逗号

    我有一个非常基本的问题 如何在 Qt 中强制使用浮点数中的点而不是逗号 我的操作系统有法语版本 其他问题 是否可以显示带有千位分隔符空格的数字 尝试这个 QLocale loc QLocale system current locale l
  • WP8:使用ApplicationBar截屏

    如何使用 ApplicationBar 截屏 我使用的例子来自这个分行 https stackoverflow com questions 5553429 wp7 take screenshot from application 但通过这种
  • 方法与类型 - 第 2 部分中的另一种方法具有相同的擦除

    我完全明白这个问题方法与类型中的另一个方法具有相同的擦除 https stackoverflow com questions 1998544 method has the same erasure as another method in
  • 如何在 MySQL 中声明变量以进行普通查询?

    如何为 MySQL 中的普通查询声明变量 e g declare myVar date set myVar something select from someTable where someColumn myVar 我尝试过 语法似乎是错
  • 如何在大型光栅图像上将 Leaflet FlyTo() 与 unproject() 和 GeoJSON 数据结合使用?

    我正在使用 Leaflet 构建故事地图 使用切片为图块的大图像而不是 真实世界 地图数据 我正在使用这个插件 https commenthol github io leaflet rastercoords https commenthol
  • 如何在 Visual Studio 2010 中设置 CUDA 编译器标志?

    经过坚持不懈的得到error identifier atomicAdd is undefined 我找到了编译的解决方案 arch sm 20旗帜 但是如何在 VS 2010 中传递这个编译器标志呢 我已经尝试过如下Project gt P
  • SQL Server:使用数字文字进行计算

    我用浮点计算做了一些测试 以尽量减少精度损失 我偶然发现了一个现象 我想在这里展示并希望得到解释 当我写作时 print 1 0 1 0 60 0 结果是 60 0024000960 当我编写相同的公式并进行显式转换时float print
  • 管理 2 个以上具有依赖关系的 Nodejs 包的开发

    我正在开发 2 个 node js 包 每个包都在自己的 git 存储库中管理 包裹B取决于套餐A 所以我的本地目录结构如下所示 A1 B node modules A2 如果我更改本地代码A1 我想测试一下B在将其推送到公共存储库之前 我