在前端开发中,经常需要处理一些重复性的、枯燥的工作,例如代码压缩、CSS 样式合并、打包等等。为了方便工作,我们可以使用自动化构建工具 Gulp 或者 Grunt。然而,这些工具对于初学者来说可能有些复杂,因此,在这篇文章中,我们将介绍一个简单易用的自动化构建工具:tesk
。
tesk 是一个基于 Node.js 的命令行工具,它提供了一些常用的任务(task),例如压缩、合并、编译等等。tesk 的优点是易于使用,没有过多的配置,只需要在 tesk.js
文件中定义任务就可以了。同时,tesk 不需要像 Gulp 或 Grunt 那样需要安装大量的插件。
安装 tesk
安装 tesk 很简单,只需要使用 npm 安装即可:
npm install -g tesk
-g 参数表示全局安装,如果想要项目内局部安装,则去掉 -g 参数。
安装完成后,我们可以在命令行中输入 tesk -v
来检查 tesk 的版本号。
定义任务
定义任务可以通过在项目根目录下创建 tesk.js
文件来实现。以压缩 JavaScript 代码为例,我们可以这样定义任务:
const tesk = require('tesk'); const uglify = require('tesk-uglify'); tesk.task('uglify', () => { return tesk.src('src/*.js') .pipe(uglify()) .pipe(tesk.dest('build/js')); });
上面的代码使用 tesk.task
定义了一个名为 uglify
的任务,这个任务将会压缩 src/
目录下的 JavaScript 代码,并将结果保存在 build/js
目录下。其中,tesk.src
用来指定任务的输入源,tesk.dest
则用来指定任务输出的目标。
在执行 uglify
任务之前,我们需要先安装 tesk-uglify
模块:
npm install tesk-uglify --save-dev
执行任务
定义好任务后,我们可以在命令行中输入 tesk <task>
来执行指定任务。例如,执行上面定义的 uglify
任务:
tesk uglify
执行完毕后,我们就可以在 build/js
目录下找到经过压缩的 JavaScript 代码了。
组合任务
有时候,我们需要对多个任务进行组合,例如先进行 JavaScript 代码压缩,再进行 CSS 样式合并。我们可以使用 tesk.series
将多个任务串联起来,例如:
tesk.task('build', tesk.series('uglify', 'css')); tesk.task('css', () => { return tesk.src('src/*.css') .pipe(concat('all.css')) .pipe(tesk.dest('build/css')); })
上面定义了一个名为 build
的任务,它将会先执行 uglify
任务,然后执行 css
任务。
我们同样需要安装 concat
模块:
npm install tesk-concat --save-dev
总结
使用 tesk 工具可以方便地实现前端自动化构建工作,而且配置简单,易于使用。我们可以通过定义任务来完成重复性的、繁琐的工作,提高开发效率。感谢你阅读本文,希望能对你有所帮助。
示例代码:https://github.com/example/tesk-example
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668f8d9381d61a3540f9a