init project from uniform cli-tool base on AI TEAM STANDARD
npm install -g yiai-cli
yiai
Usage: yiai <command> [options]
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
init [name] Initialize a kind of template
list List templates
serve [dir] server built by local static folder
publish <version> Publish a new version
screenshot <url|local-file> Take a screenshot of a web page
ghpages Push a directory to gh-pages
help [command] display help for command
脚手架包含多个独立命令。
根据模板初始化项目
you can choice one of below templates:
- vue-typescirpt
new
- vue
base on vue-cli3
- electron
base on electron-vue
- official-website
base on nuxt
- mini-app
base on mpvue
- node-tool
列出所有项目模板
对项目中build打包后的静态文件,快速开启本地node服务器。使得可以快速预览项目的生产包。默认指向静态文件是当前执行命令位置
,端口是3000
更多参数可使用yiai serve --help
查看:
Usage: yiai-serve [options] [dir]
Options:
-o, --open automatically opens a browser window to this server
-a, --auth <user>:<pass> specify basic auth credentials
-F, --format <fmt> specify the log format string (default: "dev")
-p, --port <port> specify the port [3000] (default: 3000)
-r, --root <root> specify the root directory [] (default: "")
--https-port <port> specify the port [3443] (default: 3443)
-H, --hidden enable hidden file serving
-S, --no-stylus disable stylus rendering
-J, --no-pug disable pug rendering
--no-less disable less css rendering
-I, --no-icons disable icons
-L, --no-logs disable request logging
-D, --no-dirs disable directory serving
-C, --cors allows cross origin access serving
-s, --https also serve over https
--key key file path for https
--cert certificate file for https
--ca CA certificate file for https
--compress gzip or deflate the response
--exec <cmd> execute command on each request
-h, --help display help for command
支持配置git-sync.target
,支持branch、dist
参数设置。更多该工具详情,可看独立npm版本: git-sync-tool
在vue项目的package.json中配置
git-sync.target
,指向egg项目(最终node项目部署)
yiai gitsync
和gh-pages
同步工具有何区别?
两者核心功能一致,都可以把指定dist静态文件,同步到另外一个项目的dest目录下,不过yiai gitsync可以有较多的自定义能力,更符合项目扩展。
附上ghpages同步文件代码:
const ghpages = require('gh-pages')
// ghpages api方式,同步静态文件
ghpages.publish('dist'), {
dest: 'app/public',
repo: 'xxx/webserver-egg.git',
branch: 'develop'
}, (e) => {
if (e) {
console.log('sync failed', e.message)
return process.exit(1)
}
})
gh-pages publish核心源码流程:1. gitclone/git pull/git checkout拿到最新代码到cache文件夹中 2. 清空dest文件夹,并同步dist内容到dest文件夹中 3. git tag/git push推送。