12月13, 2016

shelljs的记录

之前文章有提到关于git submodule,那在具体实践中会有一些麻烦。比如说:

git submodule

通过:

git clone git地址 -b 分支名 --recursive

我们进入某个子模块的目录,譬如上面的home,运行git branch,发现并不是上图中的分支名。

因此我们需要自己写一个脚本来做git checkout的事情。

在写的过程,主要碰到了两个问题。

  • 读取.submodule文件,提取branch后面的名称

开始想到的是用match,但match得到的是一个数组,后来用replace就OK了,简单代码如下:

var content = fs.readFileSync("./.gitmodules");

var reg = /branch = \b(\w+\-\w+)\b/g;

var branches = [];

content.toString().replace(reg, function($0, $1) {
    branches.push($1);
})
  • 执行脚本

开始想到的是用exec(child_process模块的方法)。

但测试发现比如:

exec("cd 目录");

执行不成功。

于是,google一下,发现npm包有一个shelljs,相当好用。

基于它,终于实现了上面的需求。

本文链接:www.my-fe.pub/post/npm-shelljs.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。