在Vagrant / Virtualbox中运行时,早午餐监视不会处理后续更改中的文件

时间:2015-06-29 15:33:13

标签: vagrant virtualbox brunch

我目前正在使用Vagrant / Virtualbox开发环境。我的web项目是一个django / Angularjs项目,所有前端开发脚手架都是用早午餐完成的。

当我使用brunch build命令时Brunch工作正常,但是当我使用brunch watch命令时,当我在主机上更改项目时,我的javascript文件不会被早午餐处理。

我尝试使用nfs文件夹同步config.vm.synced_folder folder["map"], folder["to"], type: folder["type"] ||= "nfs"和默认的Virtualbox文件夹同步,但似乎都不能与brunch watch一起使用。

以下是我的brunch-config.js文件:

exports.config = {
  paths: {
    watched: [
      'app',
      'assets',
      'styles',
      'vendor',
    ]
  },
  files: {
    javascripts: {
      joinTo: {
        'javascript/app.js': /^app/,
        'javascript/vendor.js': /^(vendor|bower_components)/,
      }
    },
    stylesheets: {
      joinTo: {
        'styles/app.css': /^styles/,
        'styles/vendor.css': /^(vendor|bower_components)/,
      }
    }
  },
  conventions: {
    assets: function(path) {
      /**
       * Loops every path and returns path|true|false according what we need
       * @param   path    file or directory's path
       * @returns path    if it is a directory
       *          true    if it fit with the regular expression
       *          false   otherwise
       *
       */
      if( /\/$/.test(path) ) return path;
      // /^app\/.*\.html/.test(path) ||
      // RegExp for anything we need
      return /assets[\\/]/.test(path) 
            || /.*(?:\.eot|\.svg|\.ttf|\.woff2|\.woff)/.test(path); 
    }
  },
  plugins: {
    afterBrunch: [
      'mv public/bootstrap/dist/fonts/* public/fonts',
      'rm -r public/bootstrap',
      'mv public/bootstrap-material-design/dist/fonts/* public/fonts/',
      'rm -r public/bootstrap-material-design',
    ]
  }
}

1 个答案:

答案 0 :(得分:2)

您可能需要启用轮询模式文件监视才能成功检测已安装文件系统的更改。

在你的brunch-config中:

watcher:
    usePolling: true

https://github.com/brunch/brunch/blob/01afa693548d0dad2ade6528cedd20f0fbf8f2ac/docs/config.md#watcher