shelljs 前端自动化
最编程
2024-04-25 19:23:54
...
场景
在开发过程中,常会遇到如下命令:
git add .
git commit -m '*****'
git push
Shelljs
这个库能够让我们在js文件中执行shell命令。shelljs做的事就是自动化,从耗时的重复性常规动作里解放出来,提升开发效率和工作心情。
1.Installing
$ npm install shelljs -D
2. 在根目录下新建文件shell.js,内容如下:
let shell = require('shelljs')
let name = process.argv[2] || 'Auto-commit';
let exec = shell.exec
if (exec('git add .').code !== 0) {
echo('Error: Git add failed')
exit(1)
}
if (exec(`git commit -am "${name}"`).code !== 0) {
echo('Error: Git commit failed')
exit(1)
}
if (exec('git push').code !== 0) {
echo('Error: Git commit failed')
exit(1)
}
3.只用一条命令执行以上所有任务,在package.json中加入,方法如下:
"script":{
"push":"node ./shell.js"
}
$ npm run push 测试shelljs提交代码
上述操作就可以通过执行shelljs脚本提交代码啦。
Examples
1.运行命令环境时,配置文件config根据开发和生产环境进行区分, 所以这里根据命令环境,将文件复制到目标文件,以vue.config.js为例,区分开发和生产环境:
// 运行命令环境 用于config区分开发和生成环境
const shell = require('shelljs')
const apiEnv = process.env.API_ENV
shell.cp(`./src/config/${apiEnv}.js`, './src/config/index.js')
基本语法
-
shell.which(command) 在环境变量PATH中寻找指定命令的地址,判断该命令是否可执行,返回该命令的绝对地址
-
echo 在控制台输出指定内容
-
exit(code) 以退出码为code退出当前进程
//引入shelljs
var shell = require('shelljs')
//检查控制台是否以运行`git `开头的命令
if (!shell.which('git')) {
//在控制台输出内容
shell.echo('Sorry, this script requires git');
shell.exit(1);
}
- rm([options,] file [,file ...]) 删除一个目录中一个或多个文件或目录,一旦删除,无法恢复。 常用参数: -f:强制删除文件; -i:删除之前先询问用户; -r:递归处理目录; -v:显示处理过程;
shell.rm('-rf','out/Release') //强制递归删除`out/Release目录`
- cp([options,] source_array, dest) 用来将一个或多个源文件或目录复制到指定的文件或目录
shell.cp('-R','stuff/','out/Release') //将`stuff/`中所有内容拷贝至`out/Release`目录
- cd 切换工作目录至指定的相对路径或绝对路径。cd..为返回上一级,cd-回到前一目录
shell.cd('lib') //进入`lib`目录
- ls 用来显示目标列表
ls(path.join('bundle', 'css/')).forEach(cssName => {
***
})
- sed([options,] search_regex, replacement, file_array) 将file_array中符合search_regex的内容替换为replacement,支持正则的捕获组自引用。一次处理一行内容,处理完成后把缓冲区内容送往屏幕,然后处理下一行,循环直至结束。
/* -i表示直接作用源文件 */
/* 将build_version字段替换为'v0.1.2' */
shell.sed('-i', 'BUILD_VERSION', 'v0.1.2', file);
- cat([options,] file [, file ...]) 将一个或多个文件内容读入,指定一个文件时读入该文件,指定多个文件时将内容连接在一起读入。
shelljs-npm
shelljs官方文档
shelljs-github
shelljs中文文档介绍
推荐阅读
-
别听别人吹嘘什么前端MVVM框架好,其实都是一群没学过分层设计的人搞出来的,所以你完全可以看清前端MVVM的本质!
-
python+requests 接口自动化测试框架示例详细教程
-
关于微前端(阿里乾坤)的事--上线一个 "微前端 "逼走两个90后!
-
2023 大型前端开发员(Vue 方向)
-
python 自动化 ------ 问卷星刷问卷 3.0 版
-
测试运维】Web 自动化全知识点笔记 编号:什么是 Web 自动化测试(已分享,附代码)
-
Springboot 框架 BigDecimal 处理小数点并返回前端问题组织
-
[Spring Cloud] (5) 网关前端和后端公钥和私钥以及身份验证信息 - 前端
-
关于为前端开发人员购买 Macbook Pro 的建议
-
前端工程师的成长故事