项目构建

项目构建

项目结构

一个典型的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来发布项目版本.

  1. 语义化版本控制

语义化版本控制使用三段式版本号格式:MAJOR.MINOR.PATCH,其中:

  • MAJOR:主版本号,当你做了不兼容的API修改时递增。
  • MINOR:次版本号,当你做了向下兼容的功能性新增时递增。
  • PATCH:补丁号,当你做了向下兼容的问题修正时递增。
  1. 版本号命名规则
  • 格式: 版本号格式应为 X.Y.Z,其中 X、Y 和 Z 都是非负的整数,且不能包含前导零。版本号前面可以选择添加 v 前缀,例如 v1.2.3。

可以通过以下步骤进行初始化和管理依赖

  • 主版本号 (MAJOR)

    • 递增主版本号时,应重置次版本号和补丁号为零。
    • 表示引入了不向后兼容的变化。
  • 次版本号 (MINOR)

    • 递增次版本号时,应重置补丁号为零。
    • 表示添加了新功能,同时向后兼容。
  • 补丁号 (PATCH)

    • 补丁号表示向后兼容的问题修正。
  1. 示例
  • 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

提示

  1. 默认情况下,依赖的安装位置为:用户主目录/.vino/
  2. 通过设置环境变量:VINO_PATH来指定安装目录

更新依赖

会根据当前目录package.json中的依赖列表中的依赖版本范围,更新到版本范围内的最新版本

vino update

更新指定依赖到最新版本

vino update codeup.aliyun.com/jianvin/test/vino1

私有git仓库

当依赖包存储的git仓库需要授权时,installupdate将会失败,需要开发者指定仓库的账号和密码。

在当前操作系统的用户主目录下,新建文件.netrc,文件内容如下:

machine github.com
login username
password 123456

请将github.com替换为自己的仓库域名,将username替换为自己的仓库账号,将123456替换为自己的密码。

提示

vinoinstallupdate命令是通过内置的git客户端来访问git仓库,它并不依赖外部的git客户端

更新时间 8/1/2024, 11:45:40 AM