继前天学习了 Node.js 之后,昨天研究了下 grunt。今天用 Node.js 写了两个小工具。
太久没有研究新东西了,grunt 学习起来,颇为坎坷。需要在此记录下,以提醒后人不要重蹈我的覆辙 ^^
grunt:
用于辅助中型以上的 JavaScript 项目:
定义项目描述属性;
合并文件;
搭建项目模版;
校验 JS;
压缩代码;
测试;
静态服务器;
部署等扩展功能。
1. 安装 grunt
npm install -g grunt
2. 新建 grunt.js 文件,进到当前目录运行 grunt
此刻产生了严重的问题: 'modlue' 未定义
由于使用的是 Win7 才会产生此问题,铺天盖地的搜索没有任何进展。于是静下心来读了某篇使用文章后才发现需要运行以下命令:
DOSKEY grunt=grunt.cmd $*
3. 按照 API 随便写点什么压缩或者合并文件的代码
/*global module:false*/ module.exports = function(grunt) { // Project configuration. grunt.initConfig({ min: { dist: { src: ['dist/test.css'], dest: 'dist/test.min.css' } } });};
错误又发生了 <WARN> Task "default" not found. Use --force to continue. </WARN>
这时有点无解了,准备看下 jQuery 是怎么用的,可是运行的时候 jQuery 的时候又出现了各种问题。貌似是说缺少某个依赖。
换个思路,用了下 grunt init,嘿嘿,这下貌似可以了。
于是又反向排查步骤 3 发生的问题,原来是遗漏了 grunt.registerTask('default', 'min'); 真是不好好看文档的结果。
至此,一个 grunt 已经可以运行了。
后面又继续研究了下,功能还真是强大
- concat - Concatenate files.
- init - Generate project scaffolding from a predefined template.
- lint - Validate files with JSHint.
- min - Minify files with UglifyJS.
- qunit - Run QUnit unit tests in a headless PhantomJS instance.
- server - Start a static web server
PS:这其实是个很简单的步骤,这篇文章主要描述了解决问题的过程和方法。学习就是在不断的解决所遇到的问题,攻克一个一个的问题,攻克完了,你就学会了。