Grunt.js DEV与PROD任务

刚刚开始学习一些Grunt(以及替代 – gulp.js),我遇到了一些困惑,我似乎无法自己弄清楚。 我了解如何为不同的环境定义不同的任务,以便提高效率并提高性能,但是我陷入困境的是如何正确使用这两种types的任务。

问题1:假设我有一个images目录,我不想在开发过程中运行grunt-contrib-imagemin ,但是想在生产过程中运行grunt-contrib-imagemin ,以便“已处理”的图像以images/build grunt-contrib-imagemin 。 我如何解释我的文件path? 有没有办法自动化?

问题2:我不是开发者,对于任何types的服务器configuration我都没有什么经验,所以当人们说“在你的服务器上运行grunt build ”的时候我感到困惑。 那会发生在哪里? 甚至有可能像iPage这样的廉价共享主机?

我真的想通过构build工具来扩展我的知识,所以任何build议或意见都是值得欢迎的。 感谢您抽出宝贵的时间!

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

    现在,如果你在terminal上input“grunt dev”,grunt只运行“devtask”。 只要“咕噜”就会运行“默认”中列出的与“grunt dev”相同的任务。

    如果input“grunt prod”,grunt运行imagemin任务的prod目标。

    所以现在imagemin只运行生产。

    用imagemin任务的“src”和“dest”属性来修改“images / build”中的输出。 你可以指定'cwd'属性来告诉文件path。

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