当前位置: 首页 > news >正文

通过git安装npm私有模块

需求分析

在日常项目中,会有几个项目共同的组件或者工具函数库。这些代码如果在各个项目中都copy一份的话,如果有需要改动的话,oh,要累死去。
本着DPR的原则,需要一种可以管理公用代码的方法。并且代码中有些是公司内部业务逻辑,这肯定不能发布成公用包。所以需要一种私有包管理方案。

可选方案

  • 1、npm官方私有包,需要收费,pass

  • 2、搭建npm私有服务器,还没有这个必要,pass

  • 3、使用 npm 安装 git 仓库 简单便利

  • 4、使用 gitsubmodule,在主仓库中嵌套子仓库

npm 安装 git 仓库

因为github私有仓库需要收费,这里我使用码云创建免费私有 git 仓库。
在项目中直接 npm 安装私有仓库,示例:

npm install git+ssh://git@github.com:ltinyho/test.git 

可以使用npm install --help查看install命令(npm@5.3.0)

 npm install (with no args, in package dir)
 npm install [<@scope>/]<pkg>
 npm install [<@scope>/]<pkg>@<tag>
 npm install [<@scope>/]<pkg>@<version>
 npm install [<@scope>/]<pkg>@<version range>
 npm install <folder>
 npm install <tarball file>
 npm install <tarball url>
 npm install <git:// url>
 npm install <github username>/<github project>

从git安装可以选择标签|分支|commit,最好更该代码后修改仓库中package.json版本信息

   npm install <github username>/<github project>#<tag|branch|commit>

git submodule 仓库嵌套

git submodule add <仓库地址> <文件路径>
在项目根目录生成`.gitmodules`文件,记录子模块的信息

新项目安装或者更新

git submodule init 
git submodule update 

相关文章:

  • python 安装 setuptools Compression requires the (missing) zlib module 的解决方案
  • jquery easyui-datagrid/treegrid 清空数据参考
  • 【微信公众号发红包转账】微信公众号上手机网页接收请求,通过公众号给用户发红包 开发流程...
  • Linux驱动开发之注册
  • java:Properties属性文件概念
  • 从0实现一个tiny react(三)生命周期
  • python练习-统计包含数字字符串元组在内的列表内数据类型个数
  • MFC添加背景图片
  • C#/VB.NET 给Word文档添加/撤销书签
  • include 和require的区别
  • windows7安装saltstack
  • 训练过程中出现的报错
  • python基础知识
  • mysql的锁机制
  • STM32——C语言知识点:指针、结构体
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 「译」Node.js Streams 基础
  • 10个确保微服务与容器安全的最佳实践
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • android图片蒙层
  • iOS 颜色设置看我就够了
  • Markdown 语法简单说明
  • Redis 中的布隆过滤器
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 翻译--Thinking in React
  • 浮动相关
  • 巧用 TypeScript (一)
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 如何解决微信端直接跳WAP端
  • 使用Gradle第一次构建Java程序
  • 微服务入门【系列视频课程】
  • Nginx实现动静分离
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​linux启动进程的方式
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​香农与信息论三大定律
  • #pragma multi_compile #pragma shader_feature
  • ( 10 )MySQL中的外键
  • (12)目标检测_SSD基于pytorch搭建代码
  • (补)B+树一些思想
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .Net core 6.0 升8.0
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .Net Core和.Net Standard直观理解
  • .net framework4与其client profile版本的区别
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET使用存储过程实现对数据库的增删改查