node.js - 如何专门使用 NPM 本地依赖项进行本地开发,以及使用来自外部注册表的一个依赖项进行生产?
问题描述
我正在开发一套工具,它们都使用同一个库中的代码。图书馆也是内部开发的。
当我发布一个工具时,我希望它使用来自 NPM 注册表 (npmjs.com) 的特定版本的库,但是当我在本地开发它时,我希望它专门使用相对本地包(即:)../some_package
。似乎我可以使用不同的环境变量和scripts
in来做到这一点,package.json
但这似乎很迂回。
这些工具之一中重要的部分如下所示:
"dependencies": {
"@teaminkling/autolib": "^0.1.1"
},
...这很好,适用于生产。但是,要在本地处理它并且仍然具有版本控制,我需要这样做:
"dependencies": {
"@teaminkling/autolib": "file:../autolib"
},
我希望这个问题是重复的,因为我认为这是一种非常常见的开发模式,但一段时间后我找不到任何东西。我也欢迎有关处理这种库依赖管理的更好方法的评论。
谢谢您的帮助!
解决方案
npm link
在源代码中运行autolib
,然后npm link @teaminkling/autolib
在要使用开发版本的任何包源中运行。您package.json
仍应参考生产的真实版本,但对于本地链接的软件包,它们将被忽略。
推荐阅读
- python - 模型训练时间长
- javascript - 如何在角度 2 中添加多个 OR 条件
- postgresql - 找不到 PostgreSQL 文件、集群或服务;该怎么办?
- vb.net - VB.NET 添加没有事件处理程序的处理程序?
- javascript - 道具传递的方法的 setState 上的无限循环
- sql-server - 尝试查询本地 SQL Server 数据库时发生无效对象名称请求错误
- macros - 在此范围内找不到宏
- dart - 访问类外的类属性
- symfony - Symfony、Monolog 和 Slack:如何格式化通知?
- excel - 带有 %USERPROFILE% 的连接字符串,用于通过 Box 驱动器访问数据库