使用Grunt.js监听PHP文件

时间:2013-10-13 14:44:42

标签: php ftp gruntjs grunt-contrib-watch

我还是一个咕噜咕噜的新手,我很难“看”php文件。

实际上,livereload对于任何php文件都能正常工作,但是我想要启动的关于php文件更改的任何任务都不会发生...在这种情况下我想用ftp-deploy来推送每次更改ftp文件到我的服务器(这样我就可以通过直接在我的服务器上链接到php文件并使用简单的MAMP安装来保持我的工作流程。)

我的手表代码是这样的:

watch: {
    concat: {
      files: '<%= project.src %>/js/{,*/}*.js',
      tasks: ['concat:dev', 'jshint']
    },

    sass: {
      files: '<%= project.src %>/scss/{,*/}*.{scss,sass}',
      tasks: ['sass:dev', 'cssmin:dev', 'autoprefixer:dev']
    },

    banana: {
      files: '<%= project.src %>/php/*.php',
      tasks: ['ftp-deploy']
    },


    livereload: {
      options: {
        livereload: LIVERELOAD_PORT
      },
      files: [
        '<%= project.app %>/{,*/}*.html',
        '<%= project.assets %>/css/*.css',
        '<%= project.assets %>/js/{,*/}*.js',
        '<%= project.src %>/php/{,*/}*.php',
        '<%= project.assets %>/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
      ]
    }
  }

因此,即使是php文件的livereload,一切都能正常运行,这是ftp-deploy任务不会发生的巨大例外。

如果我将这个ftp-deploy任务添加到sass目标或concat目标上,它可以完美地工作但是在香蕉目标上(是的......我开始感到沮丧)它根本不起作用!

我正在打破这个......

有人能帮助我吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

嗯...看着你的监视任务,好像你想在.php目录或任何子目录中找到/php/个文件。在那种情况下,也许你真的想要这个:

banana: {
  files: '<%= project.src %>/php/**/*.php', // the ** says this or any sub-directory
  tasks: ['ftp-deploy']
},

我猜这也是你livereload任务的目标:
'<%= project.src %>/php/{,*/}*.php'
也许可以改写为(不是100%肯定):
'<%= project.src %>/php/**/*.php'