【问题标题】:Grunt.js DEV vs PROD tasksGrunt.js DEV 与 PROD 任务
【发布时间】:2014-02-20 14:57:39
【问题描述】:

刚开始学习一些 Grunt(以及替代方案 - gulp.js),我遇到了一些我自己似乎无法弄清楚的困惑。我了解您如何为不同的环境定义不同的任务以提高效率并提高性能,但我遇到困难的是如何准确地利用这两种类型的任务。

问题 1: 假设我有一个 images 目录,我不想在开发过程中运行 grunt-contrib-imagemin,但希望在生产过程中运行它,以便“处理' 图片位于images/build。我如何在我的文件路径中解释这一点?有没有办法实现自动化?

问题 2:我不是开发人员,我对任何类型的服务器配置都没有经验,所以当人们说“在您的服务器上运行 grunt build”时,我感到很困惑。那会发生在哪里?这在像 iPage 这样的廉价共享主机上是否可行?

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

【问题讨论】:

    标签: javascript node.js configuration gruntjs


    【解决方案1】:
    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' 将运行 'default' 中列出的任务,这与 'grunt dev' 相同。

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

      所以现在 imagemin 只为生产运行。

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

    2. 要在服务器端做这些事情,你需要 NodeJS。一些网络托管公司提供这一点。您将需要检查您的。我通常只是在我的开发机器上执行 grunt 步骤,然后通过 ftp 将输出文件传输到服务器。这一步也可以由 grunt 通过许多可用的 grunt ftp 插件来完成。

    【讨论】:

    • 感谢您的回答!我知道如何设置单独的开发/构建任务以在不同时间完成不同的事情,但我只是不确定如何管理不同的文件路径。我将研究“cwd”选项。此外,我认为您可能必须拥有一个 Node 主机,但我只是好奇我是否遗漏了一些明显的东西。再次感谢!
    猜你喜欢
    • 2022-12-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多