单个lib的构建,使用gulp、grunt等构建工具,总感觉有点大材小用,需要安装一堆依赖不说,而且配置比较复杂。shelljs是一个轻量级的文件I/O库,可以做为简单的构建工具。

什么是shelljs

shelljs是node版的shell命令。 通过node API,实现了Unix下shell命令。

node版Makefile

shelljs/make和unix下makefile的行为是一致的。脚本中包含一个全局的对象target。taget对象下面挂载了N个方法,有N中不同的行为。执行 node 文件名 方法名就是执行对应的方法。比如,有下面的make文件,执行node make dist时,会执行target.dist方法中定义的行为。若没有执行方法名,会执行all方法。

require('shelljs/make');
target.all = function() {
};

target.dist = function() {
}

如何构建

所谓构建,其实是文件I /O操作。shell命令中有很多关于文件读写的命令,比如cat,cp等等。使用这些基础的命令可以做一些简单的文件合并,拷贝等操作。能力不足的,可以用npm包来不全。

适用范围

shelljs的能力比较有限,适用于单个库的构建。比如zepto、Firebug等。单个项目的构建,建议还是使用gulp、fis等。