0.1.10 • Published 3 months ago

yss-toolchain v0.1.10

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

yss-toolchain - 个人工具集

概览

  1. 安装

  2. 模块

    1. 日志模块
    2. 上传模块

安装

npm install --save-dev yss-toolchain

模块

日志模块

单/多页面,多环境环境打包
需要先在 package.json 里添加初始版本号

y-cli build-log
参数是否必填名称类型默认值说明
--branch(-b)false分支array'master'-
--author(-a)false作者array'Tom'-
--environment(-e)false环境string'development'-
--environmentSuffix(-s)false分支后缀string'dev'和 environment 对应
--project(-p)false多页面string'null'多页面使用,自定义多页面名称,不是项目项目

初始版本号

  • 单页面 package.json
{
  "version": "1.0.0",
  "version_[environmentSuffix]": "1.0.0",
  "version_[environmentSuffix]": "1.0.0"
}
  • 多页面 package.json
{
  "version": "1.0.0",
  "[project]_version_[environmentSuffix]": "1.0.0",
  "[project]_version_[environmentSuffix]": "1.0.0",
  "[project]_version_[environmentSuffix]": "1.0.0",
  "[project]_version_[environmentSuffix]": "1.0.0"
}
  • 示例

单页面

y-cli build-log -b dev -e development -s dev

多页面

y-cli build-log -b dev -e development -s dev -p a

上传模块

自动上传并更新服务端包(node-ssh)
需要先通过 cross-env 设置配置文件路径 UPLOAD_CONFIG_PATH(相对路径或绝对路径)
服务端需要在目标目录下添加 unzip.sh 文件,用于解压压缩包

cross-env UPLOAD_CONFIG_PATH=test\\upload.prod.json y-cli upload

y-cli upload

参数是否必填名称类型默认值说明
--environment(-e)false环境string'development''development' 或 'production' 二选一
--directory(-d)false打包目录string'dist'需要上传的文件夹名称
--update(-u)false更新string'false'是否自动更新

UPLOAD_CONFIG_PATH

JSON key

参数是否必填名称类型默认值说明
projectNametrue项目名称string-package.json 的 name
MultiPageBuildNametrue多页面名称string-自定义多页面名称或和打包目录文件名称相同

JSON value

参数是否必填名称类型默认值说明
hosttrueIPstring-插件 node-ssh 连接参数
pathUrltrue路径string-插件 node-ssh 连接参数
usernametrue用户名string-插件 node-ssh 连接参数
passwordtrue密码string-插件 node-ssh 连接参数
privateKeyPathtrue文件密码string-插件 node-ssh 连接参数,与 password 二选一
porttrue端口number-插件 node-ssh 连接参数
environmenttrue环境string'development''development' 或 'production' 二选一
distNametrue打包目录string'dist'需要上传并压缩的文件夹名称
isMultiPagefalse多页面booleanundefined一个项目下,多页面使用
  • UPLOAD_CONFIG_PATH 配置文件示例
{
 "projectName": {
    "host": "111.00.00.111",
    "pathUrl": "/file",
    "username": "root",
    "password": "123456",
    "port": 22,
    "environment": "production",
    "distName": "dist"
  },
  "projectName": {
    "isMultiPage": true,
    "MultiPageBuildName": {
      "host": "111.00.00.111",
      "pathUrl": "/file/test1",
      "username": "root",
      "password": "MTIzNDU2",
      "port": 22,
      "environment": "production",
      "distName": "test-1"
    },
    "MultiPageBuildName": {
      "host": "111.00.00.111",
      "pathUrl": "/file/test2",
      "username": "root",
      "password": "MTIzNDU2",
      "port": 22,
      "environment": "production",
      "distName": "test-2"
    }
  }
}
  • 示例
cross-env UPLOAD_CONFIG_PATH=..\\upload.dev.json y-cli upload -e production -d dist -u true
  • unzip.sh 示例
#!/bin/bash

# 当前脚本的文件名
script_name=$(basename "$0")

# 不可删除的文件夹名称数组,按需添加多个文件夹名称
protected_folders=("dist.zip")

# 构建 find 命令的排除条件
exclude_conditions=(! -name "$script_name")
for folder in "${protected_folders[@]}"; do
  exclude_conditions+=(! -name "$folder")
done

# 删除当前目录下的所有文件和文件夹,除了这个脚本本身和不可删除的文件夹
find . -mindepth 1 -maxdepth 1 "${exclude_conditions[@]}" -exec rm -rf {} +

# 解压 dist.zip 文件,并覆盖现有文件
unzip -o dist.zip
0.1.10

3 months ago

0.1.8

1 year ago

0.1.7

1 year ago

0.1.9

1 year ago

0.1.4

2 years ago

0.1.6

1 year ago

0.1.5

1 year ago

0.0.10

2 years ago

0.1.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.1.3

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago