私有NPM包
why
- 前端目前很多项目都有一些公用的组件,基本上都是c/v 导致维护起来很麻烦,必须一些
tools
utils
request
等等。每个项目可能都会有差异 导致一旦某些配置没及时更新 就导致项目出问题 - 共用组件更新很麻烦,每个人都需要对自己的项目进行更新,如果需要对一个项目进行系统的优化,那么如果要所有项目都同步进行,工作量太大
- 用
typescript
编写代码,保证代码的健壮性,用单元测试
保证代码的稳定性,这样在使用组件的时候能够大大的提高使用效率 - 利用
leran
对组件包进行编写,保证package的开发体验平顺,也可以保证发包的顺畅性,所有的包可以集成在一个大项目中。互相引用也可以,方便我们开发过程中进行调试相关的。
how
服务器
利用docker+verdaccio或者k8s+verdaccio进行部署,对我们的私有包服务器进行部署,提供域名
- verdaccio是一个完整的,可以高度自定义的私有npm包方案,部署简单,功能足够我们去使用。但是要保证我们服务器的稳定性,避免build的时候出现问题
- pm2 是一个node服务进程守护,对我们部署的服务器进行监听。
前端
使用就比较简单,需要明确的是我们npm源是可以进行切换的,需要全局安装nrm
npm i -g nrm
nrm ls
npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
* verdaccio ---- http://10.114.38.15:4873/
nrm add verdaccio http://服务器:port/ //增加npm源,指向我们服务器地址
nrm use verdaccio //当前npm install利用verdaccio 配置的服务器
verdaccio提供了账号注册以及权限的插件,如果后期有需要我们可以对发包权限进行收拢,账号注册进行限制。
//切换了npm源后
npm adduser //注册账号
npm login
npm who i am //查看当前登录账号
组件或者包开发利用leran
,后期会专门对这一块进行讲解。发包没加权限系统下都可以发,但是后期肯定会对包管理,发包,组件进行审查。
项目
利用leran
进行发包我们的包的形式大概是@package/fetch-reques
的结构,因为我们在本地有切换npm源的操作,但是在build 也就是服务器上进行build的时候是没有这个条件的 所以我们需要对我们项目中给的@package
包的来源进行指定
方法1:
// package.json
{
"dependencies": {
"@package/eslint-config-test": "私有包的完整路径"
}
}
方法2:
配置.npmrc
文件,当我们使用@的形式,是scope的时候,我们可以在配置文件中制定该scope的包都从制定的地址下载安装
@package:registry= 私有包地址
配置完成后,在服务器上打包就不会因为源的问题出错。