当前位置: 首页 > 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语言知识点:指针、结构体
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • express.js的介绍及使用
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Java方法详解
  • js ES6 求数组的交集,并集,还有差集
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • markdown编辑器简评
  • mysql innodb 索引使用指南
  • PAT A1092
  • springboot_database项目介绍
  • vue-loader 源码解析系列之 selector
  • 包装类对象
  • 从零开始在ubuntu上搭建node开发环境
  • 记一次和乔布斯合作最难忘的经历
  • 简单数学运算程序(不定期更新)
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 软件开发学习的5大技巧,你知道吗?
  • 协程
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 用element的upload组件实现多图片上传和压缩
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ![CDATA[ ]] 是什么东东
  • (07)Hive——窗口函数详解
  • (C语言)二分查找 超详细
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (一) storm的集群安装与配置
  • (转)可以带来幸福的一本书
  • (转载)Google Chrome调试JS
  • .libPaths()设置包加载目录
  • .Net CF下精确的计时器
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .Net MVC + EF搭建学生管理系统
  • .net 发送邮件
  • .netcore如何运行环境安装到Linux服务器
  • .net对接阿里云CSB服务
  • .sh 的运行
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题