grunt 构建前端js项目
grunt 简介
Grunt 是一个基于任务的 JavaScript 项目命令行构建工具,运行于 Node.js 平台。Grunt 能够从模板快速创建项目,合并、压缩和校验 CSS & JS 文件,运行单元测试以及启动静态服务器。和java中的maven有异曲同工之秒。
- 文档丰富:详细的使用说明,从入门使用,到高级定制,非常详尽
- 插件丰富:基本能够想到的常用的任务,都可以找到
- 社区活跃:Grunt的开发团队还是挺勤劳的,社区活跃度也挺高
安装 Grunt
Grunt以及Grunt的插件,都是通过npm进行安装和管理,所以首先得安装node环境, node.js 的下载地址:http://nodejs.org/#download,下载完成后点击下一步执行安装完即可。这里假设你已经安装了 Node.js 和 NPM。推荐使用git shell bash执行命令,首先安装全局grunt-cli ,如下:
npm install -g grunt-cli
grunt-cli的主要作用是让我们可以运行Grunt命令,加上-g,则可以在任意目录下运行。
Grunt 常用插件介绍
JSHint
——检查下JS代码规范性,避免进行类似隐式全局变量这样的坑里concat
——JS文件合并,合理减少请求数,提升加载速度cssmin
——CSS文件合并,合理减少请求数,提升加载速度Uglyfy
——压缩文件,减少文件尺寸,提升用户侧加载速度QUnit
——单元测试,提高项目可维护性,结合递归测试可尽早发现潜在问题
Grunt正是为了解决重复问题而诞生,它将项目结构生成、JSHint检查、文件合并、压缩、单元测试等繁琐的工作变成一个个可自动化完成的任务,一键搞定。
Grunt 示例
创建一个简单grunt 项目
1 切换至项目根目录,创建两个配置文件 package.json和Gruntfile.js文件。
一 package.json:这个文件主要用来描述项目信息以及项目依赖的插件;
二 Gruntfile : 这个文件主要用来配置项目任务以及加载插件。
{ "name": "bpms",
"version": "0.1.0", "devDependencies": { "grunt": "~0.4.1", "grunt-contrib-jshint": "~0.6.0", "grunt-contrib-nodeunit": "~0.2.0", "grunt-contrib-uglify": "~0.2.2" } }
Gruntfile.js 文件内容示例
module.exports = function(grunt) { // 项目配置
grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n' }, build: { src: 'src/<%= pkg.name %>.js', dest: 'build/<%= pkg.name %>.min.js' } } }); //加载插件任务
grunt.loadNpmTasks('grunt-contrib-uglify'); // 默认执行任务,和ant 有点类似
grunt.registerTask('default', ['uglify']); };
2 创建好基本项目文件后,运行如下命令安装grunt 及grunt 依赖的插件
npm install
npm install –save-dev
至此项目的一个基本环境搭建完成,然后新建一个src文件夹,创建一个bpms.js的简单js 脚本文件
3 运行grunt 生成目标文件
默认运行grunt 将会执行default 任务,如果还注册有其他任务,运行grunt name name 代表你自定义的任务名称
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探