grunt 示例文件
在本章中,让我们使用以下插件创建一个简单的Grunt文件
- grunt-contrib-uglify
- grunt-contrib-concat
- grunt-contrib-jshint
- grunt-contrib-watch
安装上述所有插件并按照下面的步骤创建一个简单的Gruntfile.js -
步骤1 - 您需要创建一个封装函数,它封装了您的Grunt的配置。
module.exports = function(grunt) {};
第2步 - 初始化您的配置对象,如下所示 -
grunt.initConfig({});
第3步 - 接下来,将package.json文件中的项目设置读入pkg属性。它使我们能够引用yourpackage.json文件中的属性值。
pkg: grunt.file.readJSON('package.json')
第4步 - 接下来,您可以定义任务的配置。让我们创建我们的第一个任务concat来连接src /文件夹中存在的所有文件,并将拼接后的.js文件存储在dist /文件夹下。
concat: { options: { // define a string to insert between files in the concatenated output separator: ';' }, dist: { // files needs to be concatenated src: ['src/**/*.js'], // location of the concatenated output JS file dest: 'dist/<%= pkg.name %>.js' } }
第5步 - 现在,让我们创建另一个称为uglify的任务来缩小我们的JavaScript。
uglify: { options: { // banner will be inserted at the top of the output which displays the date and time banner: '/*! <%= pkg.name %> <%= grunt.template.today() %> */\n' }, dist: { files: { 'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>'] } } }
上述任务在包含缩小的.js文件的dist /文件夹中创建一个文件。<%= concat.dist.dest%>
将指示uglify缩小concat任务生成的文件。
第6步 - 让我们通过创建jshint任务来配置JSHint插件。
jshint: { // define the files to lint files: ['Gruntfile.js', 'src/**/*.js'], // configure JSHint options: { // more options here if you want to override JSHint defaults globals: { jQuery: true, } } }
上面的jshint任务接受一组文件,然后接受一个选项对象。上述任务将在Gruntfile.js和src/**/*
。js文件中查找任何编码违规。
第7步 - 接下来,我们有监视任务,查看任何指定文件中的更改并运行您指定的任务。
watch: { files: ['<%= jshint.files %>'], tasks: ['jshint'] }
第8步 - 接下来,我们必须加载已经通过_npm安装的Grunt插件。
grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-concat');
第9步 - 最后,我们必须定义默认任务。
grunt.registerTask('default', ['jshint', 'concat', 'uglify']);
只需在命令行键入grunt命令即可运行默认任务。
这里是你完整的Gruntfile.js
module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), concat: { options: { separator: ';' }, dist: { src: ['src/**/*.js'], dest: 'dist/<%= pkg.name %>.js' } }, uglify: { options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today() %> */\n' }, dist: { files: { 'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>'] } } }, jshint: { // define the files to lint files: ['Gruntfile.js', 'src/**/*.js'], // configure JSHint options: { // more options here if you want to override JSHint defaults globals: { jQuery: true, } } }, watch: { files: ['<%= jshint.files %>'], tasks: ['jshint'] } }); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.registerTask('default', ['jshint', 'concat', 'uglify']); };
在本章中,让我们学习创建任务。每当你运行Grunt时,指定一个或多个任务来运行,通知Grunt你想要做什么。如果您指定了默认任务,那么它将默认运行。 别名任务每当指定任务列表时,一个或多个其他任务可以被新任务 ...