首先,我还没有真正理解gruntjs
真正做了什么,但我有一些想法。我希望通过了解它的使用方式和使用方法,我会看到它的目的。所以任何人都可以向我解释什么是gruntjs,为什么使用它,以及它用于什么。
对独立开发者或团队或两者都有好处吗?
仅适用于大型项目吗?
这只是一种趋势/时尚吗?并且无缘无故地使事情变得简单?
所以基本上简而言之,它有什么好处和对谁有好处?
答案 0 :(得分:5)
Grunt是一名任务选手。这就是全部。如果你是一个Java人,请想想Ant。
开发人员使用Grunt自动运行任务,尤其是任务序列。其中一些任务如此普遍,例如linting JavaScript,运行单元测试或缩小JavaScript,它们被打包为插件并可供您免费使用。例如,grunt-contrib-clean
是一个包含clean
任务的插件。此任务只删除目录列表的内容,这是构建过程中的常见步骤。要使用它,首先使用
Gruntfile.js
grunt.loadNpmTasks('grunt-contrib-clean');
然后配置clean
任务以使用
minified
目录
grunt.initConfig({
clean: [ 'minified' ]
});
现在可以使用
从命令行运行clean
任务
grunt clean
要想象它的潜力,想象一个清理目录的任务,然后使用Karma运行Jasmine单元测试,然后lints并编译LESS文件,缩小和连接JS文件,并将它们打包以进行部署,或者直接部署它们。
所以回答你的问题
答案 1 :(得分:1)
想要在运行项目之前完成预先要求的任务,然后grunt是最好的。 表示运行项目所需的任务
在grunt中,我们可以使用添加任务。常见任务,如
browserify :在我们的项目中,我们按名称惯例创建多个文件,以便更好地理解。但是,当我们想要运行项目时,您必须包含所有文件,而不是只能在部署项目中将所有文件合并到一个文件中,这将减少服务器时间以包含所有文件
就像在Gruntfile.js中包含
一样 uglify:{
app: {
src: ['app/**/*.js'],//include all js file in app folder
dest: 'public/site.js'//one file
}
}
grunt.loadNpmTasks('grunt-browserify');//use npm task for browserify
注册任务:在项目中我们使用diff环境。如果你想在每个环境部署之前管理要运行的东西。
就像只有Env Dev 观看任务
所需的任务一样grunt.loadNpmTasks('grunt-contrib-watch');
为此您注册任务开发
env: {
development: { NODE_ENV: 'development' },
staging: { NODE_ENV: 'staging' },
production: { NODE_ENV: 'production' }
}
grunt.registerTask('dev',['env:development','watch']);//list of task required only for dev env
grunt.registerTask('production',['env:production']);