项目构建
项目构建
项目结构
一个典型的vino项目结构如下:
myproject/
├── src/ # 源代码目录
│ ├── mypackage1/ # 程序模块或者包名
│ │ ├── apis/ # api文件存放的目录
│ │ │ ├── login.js # 业务代码
│ │ │ └── xxx.js # 其他业务代码
│ │ └── index.js # 模块的入口文件
│ └── mypackage_x/ # 其他程序模块或者包名
├── global.js # 全局对象初始化文件
├── config.js # 配置文件
├── index.js # 项目主文件
├── package.json # 依赖管理文件
└── README.md # 项目介绍文件
拉取并运行demo项目
git clone https://gitee.com/vinojs/web_demo.git
cd web_demo
vino ./index.js
注意:需要将config.js中数据库配置修改为自己的
依赖管理
vino内置了包管理器,通过依赖管理文件package.json
来管理依赖项。
{
"name": "test", //项目名称,该名称是该项目git仓库的地址
"version": "v0.0.1", //版本号
"dependencies": { //当前项目依赖
"codeup.aliyun.com/jianvin/test/vino_p1": "*0.0.11"
},
"transDependencies": [ //当前项目的传递依赖
"codeup.aliyun.com/jianvin/test/vino_p2 ^0.0.6",
"codeup.aliyun.com/jianvin/test/vino_p3 ^0.0.4"
]
}
在依赖版本的定义中,特殊字符 *
,^
, ~
和v
用于指定版本范围
*
表示 "任意版本",允许使用任何版本的包。- 格式:
*X.Y.Z
- 含义:
*1.2.3
:允许的版本范围是任何版本
- 格式:
^
表示 "兼容性范围",用于指定一个包的主版本不变,而允许次版本和补丁版本的更新。这意味着,更新不会引入破坏性变更。- 格式:
^X.Y.Z
- 含义:
^1.2.3
:允许的版本范围是 >=1.2.3 <2.0.0^0.2.3
:允许的版本范围是 >=0.2.3 <0.3.0(当主版本号是0时,表示次版本号和补丁号的更新)^0.0.3
:允许的版本范围是 >=0.0.3 <0.0.4(当主版本号和次版本号都是0时,只允许补丁版本的更新)
- 格式:
~
表示 "近似范围",用于指定一个包的次版本不变,而允许补丁版本的更新。这通常用于快速修复问题而不引入新功能。- 格式:
~X.Y.Z
- 含义:
~1.2.3
:允许的版本范围是 >=1.2.3 <1.3.0~0.2.3
:允许的版本范围是 >=0.2.3 <0.3.0~0.0.3
:允许的版本范围是 >=0.0.3 <0.1.0
- 格式:
v
表示 "指定版本",用于指定一个固定版本号- 格式:
vX.Y.Z
- 含义:
v1.2.3
:允许的版本仅限v1.2.3
- 格式:
版本管理
vino没有自己独立的依赖仓库,而是使用git作为代码仓库和依赖仓库。通过在git仓库中添加tag
来发布项目版本.
- 语义化版本控制
语义化版本控制使用三段式版本号格式:MAJOR.MINOR.PATCH,其中:
- MAJOR:主版本号,当你做了不兼容的API修改时递增。
- MINOR:次版本号,当你做了向下兼容的功能性新增时递增。
- PATCH:补丁号,当你做了向下兼容的问题修正时递增。
- 版本号命名规则
- 格式: 版本号格式应为 X.Y.Z,其中 X、Y 和 Z 都是非负的整数,且不能包含前导零。版本号前面可以选择添加 v 前缀,例如 v1.2.3。
可以通过以下步骤进行初始化和管理依赖
主版本号 (MAJOR)
- 递增主版本号时,应重置次版本号和补丁号为零。
- 表示引入了不向后兼容的变化。
次版本号 (MINOR)
- 递增次版本号时,应重置补丁号为零。
- 表示添加了新功能,同时向后兼容。
补丁号 (PATCH)
- 补丁号表示向后兼容的问题修正。
- 示例
- v1.0.0:初始发布版本。
- v1.0.1:向后兼容的补丁版本。
- v1.1.0:向后兼容的新功能版本。
- v2.0.0:包含不向后兼容的修改。
初始化项目
install
会检查当前目录中是否存在package.json
依赖管理文件,如果不存在则会自动创建。如果存在,则会检测依赖文件中的所有依赖项并进行下载。
vino install
添加依赖
添加1个依赖项,可以指定版本号。如果未指定版本号,则默认安装最新版本。
vino install example.com/some/package
vino install example.com/some/package v0.3.1
提示
- 默认情况下,依赖的安装位置为:
用户主目录/.vino/
- 通过设置环境变量:
VINO_PATH
来指定安装目录
更新依赖
会根据当前目录package.json
中的依赖列表中的依赖版本范围,更新到版本范围内的最新版本
vino update
更新指定依赖到最新版本
vino update codeup.aliyun.com/jianvin/test/vino1
私有git仓库
当依赖包存储的git仓库需要授权时,install
和update
将会失败,需要开发者指定仓库的账号和密码。
在当前操作系统的用户主目录下,新建文件.netrc
,文件内容如下:
machine github.com
login username
password 123456
请将github.com
替换为自己的仓库域名,将username
替换为自己的仓库账号,将123456
替换为自己的密码。
提示
vino
的install
和update
命令是通过内置的git客户端来访问git仓库,它并不依赖外部的git客户端