何时使用gruntjs作为JavaScript开发人员

时间:2014-03-15 18:10:00

标签: gruntjs

首先,我还没有真正理解gruntjs真正做了什么,但我有一些想法。我希望通过了解它的使用方式和使用方法,我会看到它的目的。所以任何人都可以向我解释什么是gruntjs,为什么使用它,以及它用于什么。

  
      
  • 对独立开发者或团队或两者都有好处吗?

  •   
  • 仅适用于大型项目吗?

  •   
  • 这只是一种趋势/时尚吗?并且无缘无故地使事情变得简单?

  •   

所以基本上简而言之,它有什么好处和对谁有好处?

2 个答案:

答案 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']);