2014-01-29 39 views
2

刚开始学习一些Grunt(以及替代方法--gulp.js),我遇到了一些我自己似乎无法弄清楚的混乱。我了解如何为不同的环境定义不同的任务,以提高效率并提高性能,但是如果我陷入困境,人们会如何使用这两种类型的任务。Grunt.js DEV vs PROD任务

问题1:比方说,我有我不想在开发过程中运行grunt-contrib-imageminimages目录,但希望使“处理”图像住在images/build在生产过程中运行它。我如何解释我的文件路径?有没有办法让它自动化?

问题2:我没有开发,我有任何种类的服务器配置的一点经验,所以我很困惑,当人们说“运行在服务器上grunt build”。那会发生在哪里?甚至有可能像iPage这样的廉价共享主机?

我真的想通过构建工具来扩展我的知识,因此欢迎任何和所有的建议或意见。感谢您抽出宝贵的时间!

回答

2
  1. 您需要为开发和生产指定不同的任务。类似于

    grunt.initConfig({ 
        imagemin: { 
         dev: { 
          // dev server minify config 
         }, 
         prod: { 
          // production server minify config 
         } 
        }, 
        devtask: { 
         //Some task for development mode 
        } 
    }); 
    
    grunt.loadNpmTasks('grunt-contrib-imagemin'); 
    grunt.loadNpmTasks('devtask'); 
    
    grunt.registerTask('default', ['devtask']); 
    grunt.registerTask('dev', ['devtask']); 
    grunt.registerTask('prod', ['imagemin:prod']); 
    

    现在如果在终端中输入'grunt dev',grunt只运行'devtask'。只是'咕噜'会运行'默认'中列出的任务,与'grunt dev'相同。

    如果输入'grunt prod',grunt运行imagemin任务的prod目标。

    因此,现在imagemin只运行生产。

    修补程序用imagemin任务的'src'和'dest'属性获取'images/build'中的输出。您可以指定'cwd'属性来告诉文件路径。

  2. 要做到这些东西在服务器端,你需要NodeJS。一些网络托管公司提供。您需要与您的确认。我通常只是在我的开发机器上进行一些咕噜步骤,然后通过ftp将输出文件传输到服务器。这一步也可以通过grunt通过许多可用的grunt ftp插件完成。

+0

感谢您的回答!我知道所有关于设置单独的开发/构建任务以在不同的时间完成不同的事情,但我只是不知道如何管理不同的文件路径。我会研究'cwd'选项。此外,我想你可能必须有一个节点主机,但我只是好奇,如果我错过了明显的东西。再次感谢! – cmegown