资源描述:
《用Gruntjs管理你的项目》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、用Grunt.js管理你的项目Grunt.js是什么?Grunt.js是一个JavascriptTaskRunner(Javascript任务运行器),其基于NodeJS,可用于自动化构建、测试、生成文档的项冃管理工具。Grunt.js并不是仅仅是构建工具,实际上他只是任务运行器,管理每个子任务的自动化运行,我们还能使用他做更多东西。为什么使用Grunt.js?简单的说:为了自动化。对于前端项忖,例如:•为了明确模块分丁•,我们可能会将Javascript代码拆成很小很小的一个个js文件,但是我们知道,在最
2、终页面上,我们知道过多的js文件会产生过多的HttpRequest,这不利于页面优化。所以我们可能希望可以合并这些js文件的工具。•为了用户端请求的文件尽量小,我们希望我们的HTML、Javascript等文件能进行压缩。•我们可能需要对源代码进行一些单元测试和冋归测试。•我们可能希望有工具能够通过源代码备注自动生成文档,免得手动再写文档。很明显,这一切都有各种各样的小工具能帮我们做到,但是我们希望最好能输入一个命令,打开一个程序,或者干脆每次修改文件保存后自动进行这一切事情。以前我们"J能使用NodeJS
3、自己写一个build程序,但是现在Grunt.js能够提供我们需要的一切。安装Grunt.jsGrunt.js0.4之后,其不再使用全局方式安装整个Grunt.js,而是在全局安装Grunt.jsClient,然后在当前项目中安装Grunt,来避免未来不同项冃对Grunt不同版本的依赖关系。如果安装了之前的版本,可以使npm的命令来删除掉原来的Grunt,js。npmuninstall-ggrunt然后安装Grunt.jsClient:npminstallgrunt-clipackage.jsonpacka
4、ge.json是项目的配置文件,冇一些项目的依赖信息,以及作者、版本等信息。我们先写一个简单的package.jsono〃〃〃•▲〃name:my-project,〃・〃〃C1c〃version:0.1.0,"devDependencies":{grunt:0.4.I}}4name属性,表示该项的名字。version属性,则是该项目的版本号。devDependencies属性,则包含该项目的依赖,目前我们的依赖只Wgrunt,以及版本为0.4.1。在终端大概包含该package.json的H录,输入命令:n
5、pminstall我们会发现,该冃录此时多了一个node_modulesSC件夹,里面有个grunt文件夹,这个就是我们安装在项目的Grunt.jSo用Grunt.js进行压缩js代码grunt-contrib-uglify是Grunt.js的一个任务模块,其基于著名的js压缩工具uglify,进行js压缩任务。首先我们在项S依赖加上grunt-contrib-uglify,package.json女口b:{〃〃〃•丄〃name:my-project、version:0.1.0,"devDependenci
6、es":{grunt:0.4.1,,,grunt-contrib-uglifv,z:〃~0・2.0〃}}再使用:npminstall我们就安装了grunt-contrib-uglify了。写Gruntfile.js电Imodule.exports=function(grunt){//给grunt添加些设置grunt・initConfig({uglify:{options:{banner:V*!版权所有,这里乱写*/'},bu订d:{src:?src/core.jsJ,//要压缩的源文件,我们也可以用*表
7、示通配,比如’src/*•js'dest:'dst/core.js'//压缩后输出的位置}}});//载入"uglify"插件任务grunt・loadMpmTasks('grunt-contrib-uglify5);//定义默认需要执行的任务grunt.registerTask(,default,,['uglify,]);Gruntfile.js文件用于肚义任务,以及任务组的执彳亍顺序等。上面的文件我们定义将src/core.js文件压缩后输出成dst/core.jso则我们输入命令:grunt的时候,则会
8、自动完成这个任务。More...我们可以公插件市场找到更多我们需要的插件,然后来将我们的项日更自动化的管理。