一、Verdaccio私库软件搭建(使用者可跳过本段)
1.1 安装 在npm官网上有这一段话 ,推荐使用 Verdaccio 来搭建npm私库。自行部署的原因是:通过npm账户提交的package默认是公开的,只有私有/组织账户才可以切换私有访问(需要每月支付$7); 另一方面,公开访问的package可能存在一些安全隐患 。
You can also use a private npm package registry like GitHub Packages or the open source Verdaccio project. This lets you develop packages internally that are not shared publicly.
可以通过Docker方式部署项目,本地可以通过http://localhost:4873
访问verdaccio,也可以通过http://IP地址:4873
的形式给其他同事/人员提供服务。
1 docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
1.2 配置(verdaccio) verdaccio的配置文件在/verdaccio/conf/config.yaml
,可以通过内置浏览器或者vi命令调整文件配置。
(1) uplinks 当需求的包在verdaccio内未读取到时,会通过uplinks的配置内容进行外部包访问。
1 2 3 4 5 uplinks: taobao: url: https://registry.npmmirror.com/ npmjs: url: https://registry.npmjs.org/
二、本地开发环境调整 2.1 本机NPM配置调整
实际开发时,建议使用** (2) 单项目配置**
(1) 全局配置 执行下面的命令后,会修改npm的配置信息(Linux是~/.npmrc
,windows是C:\Users\用户\.npmrc
),该操作对本地所有项目生效。
1 npm set registry http://localhost:4873/
(2) 单项目配置 执行下面的命令后,会在项目根目录生成.npmrc
,该操作仅对当前项目生效。
1 npm set registry http://localhost:4873/ --location project
(3) 作用域配置 有些时候我们只想引用内部的一些package,而通常这些package都会使用相同的前缀名称,如:@vue/cli-service
、@vue/cli-plugin-vuex
,此时通过@my-scope
的方式可以单独设置某个作用域使用Verdaccio。
1 npm config set @vue:registry http://localhost:4873
命令执行后,全局配置文件会多出一行配置: @vue:registry=http://localhost:4873
(4) 其他:每次执行安装时单独配置 可以在每次安装依赖时指定registry,实际意义及作用不大,此处仅作为一个知识面补充。
1 2 3 npm ci --registry http://localhost:4873 npm install --registry http://localhost:4873 npm install lodash --registry http://localhost:4873
2.2 注册Local NPM账号 (1) 执行注册命令 1 npm adduser --registry http://localhost:4873
(2) 输入用户名
(3) 输入密码
(4) 输入邮箱
(5) 注册成功 当出现**Logged in as 用户名 on http://localhost:4873/**的提示时,代表注册成功。
注册成功后,全局配置文件会多出一行配置:
1 //localhost:4873/:_authToken="ETLeBFyqcPkXNj/zXXdcDA=="
verdaccio 目前不支持 Web 登录,通过在注册命令后添加--auth-type=legacy
后,可以实现页面登录,但实际上并无什么作用。
三、编写package 此处以TheFloorPlan.vue
组件为例(劳工项目的平面图组件),从头编写一个Package Demo。
注:为了方便理解,组件移除了关于element-ui的引用内容。以一个单组件的形式,来俯瞰Package的全部操作过程。
3.1 配置开发环境 使用vue create创建一个新项目,之后清理项目中的无用文件,如HelloWorld.vue
等。
3.2 编码 (1) 将组件拷贝至项目中
(2) 在components目录下创建导出文件
(3) 在main.js中引用内容
(4) 编写测试页面&配置路由
(5) 配置package.json 主要调整三个地方
3.3 编译 执行npm run lib
命令进行打包,编译完成后项目根目录下就多出一个lib 目录。
3.4 提交 (1)登录npm私库 输入下方命令后,再依次输入用户名、密码、邮箱。
(2)验证当前登录账号
(3)提交
出现下图时,则表示npm包提交私库成功。
在verdaccio页面上也可以看到已经上传成功了。
四、使用package 之后就可以在项目中使用刚开发的包了。
(1)NPM - 配置&安装私有package 1 2 3 4 5 npm set registry http://localhost:4873/ --location project npm install component-kit
(2)main.js - 依赖引入 1 2 import ComponentKit from 'components-kit/lib/components-kit.umd.min' import 'components-kit/lib/components-kit.css'
(3)具体页面 - 使用组件 此处可以拷贝3.2的第3步代码 ,验证是否可以在项目中展示。
五、附录 5.1 版本管理的基本概念 版本号组成规则:**..[-]**。
名词解释:
major :代表主版本号,通常在需要提交不能向下兼容的情况下对该版本号进行升级。
minor :代表次版本号,通常在新增功能时才对该版本号进行升级。
patch :代表修复版本号,升级该版本号代表修复一些bug,但没有新增功能或者存在不向下兼容的功能。
prerelease :带有该版本号的包通常表示在测试阶段,尚未稳定,通常不建议用户安装。
其中prerelease 又有三个可选项:alpha 、beta 、rc 。
alpha :代表内部测试版,会有很多Bug,是比beta更早的版本,一般不建议对外发布。
beta :相对alpha版本已有了很大的改进,但还是存在一些缺陷,需要经过多次测试来进一步消除。
rc :Release Candidate顾名思义就是正式发布的候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错!RC版本是最终发放给用户的最接近正式版的版本,发行后改正bug就是正式版了,就是正式版之前的最后一个测试版。
例如:1.1.0-alpha.1
、1.1.0-beta.1
、1.1.0-rc.1
。
5.2 组成规则中的<>、[]分别代表的意思 **<>**:表示必填。 **[]**:表示选填,可填可不填。 **{}:表示必填,并且需要从 {}**提供的内容里选择一项。