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

何时使用gruntjs作为JavaScript开发人员,gruntjs,Gruntjs,首先,我还没有真正理解gruntjs的真正功能,但我有一些想法。我希望通过观察它是如何被使用的,以及它的用途,我将看到它的用途。那么,有谁能向我解释一下gruntjs是什么,为什么要用它,为什么要用它 这对独立开发者、团队或两者都有利吗 它只适用于大型项目吗 这只是一种潮流/时尚吗?无缘无故地让事情变得简单 总之,它的好处是什么?对谁来说?Grunt是一个任务执行者。这就是它的全部功能。如果你是Java人,想想Ant 开发人员使用Grunt自动化任务的运行,特别是任务序列。其中一些任务

首先,我还没有真正理解gruntjs的真正功能,但我有一些想法。我希望通过观察它是如何被使用的,以及它的用途,我将看到它的用途。那么,有谁能向我解释一下gruntjs是什么,为什么要用它,为什么要用它

  • 这对独立开发者、团队或两者都有利吗

  • 它只适用于大型项目吗

  • 这只是一种潮流/时尚吗?无缘无故地让事情变得简单


总之,它的好处是什么?对谁来说?

Grunt是一个任务执行者。这就是它的全部功能。如果你是Java人,想想Ant

开发人员使用Grunt自动化任务的运行,特别是任务序列。其中一些任务非常普遍,比如linting JavaScript、运行单元测试或缩小JavaScript,它们被打包为插件,供您免费使用。例如,
grunt contrib clean
是一个包含
clean
任务的插件。此任务只是删除目录列表的内容,这是构建过程中的一个常见步骤。要使用它,首先使用

grunt.loadNpmTasks('grunt-contrib-clean');
然后配置
clean
任务,使用

grunt.initConfig({
  clean: [ 'minified' ]
});
现在可以使用从命令行运行
clean
任务

grunt clean
为了可视化它的潜力,想象一个任务,它清理目录,然后使用Karma运行Jasmine单元测试,然后lints和编译更少的文件,缩小和连接JS文件,并将它们打包以供部署,或者直接部署它们

来回答你的问题

  • 这对从事该项目的任何人都是有益的
  • 好处与你必须处理的重复性任务数量成正比
  • 它是一种工具,而不是一种趋势/时尚,它简化了流程,而不是使流程过于复杂

在运行项目之前,如果想完成预先要求的任务,grunt是最好的选择。 指运行项目所需的任务

在grunt中,我们可以使用addtask.Common任务,比如

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环境。如果您希望在每个环境部署之前管理要运行的内容

就像只有环境开发监视任务需要的任务一样

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