【问题标题】:gulp watch does not trigger on nfs sharegulp watch 不会在 nfs 共享上触发
【发布时间】:2020-04-01 13:23:17
【问题描述】:

我的设置中没有触发 gulp watch 的问题。就我而言,我有一个在虚拟机中运行的 Web 项目。

主机:MAC OSX 访客机器:Ubuntu 服务器

项目文件位于主机上,我使用 NFS 与 /var/www/project 文件夹中的客户机共享文件。

当我在主机上运行 gulp watch 时,一切正常,但我更喜欢在来宾机器上运行它,因为我想使用 browsersync,我无法从带有 Web 服务器的主机上运行它客机。 当我在客户机上运行 gulp watch 时,gulp 正常启动并运行初始 sass 任务,但 gulp watch 永远不会触发任何更改。 当我将共享项目文件复制到来宾机器上的主文件夹时,在那里运行 gulp watch,一切都恢复正常。 所以看来问题是因为 NFS 共享,但我不知道为什么。我已经尝试设置不同的权限,但没有成功。

知道有什么问题吗?也许有人也有一个解决方案,我可以从主机运行 browsersync,但我认为这是不可能的。

您可以在下面看到我的 gulp 文件中的代码:

// Defining dependencies
var
  gulp = require('gulp'),
  sass = require('gulp-sass'),
  postcss = require('gulp-postcss'),
  autoprefixer = require('autoprefixer'),
  sourcemaps = require('gulp-sourcemaps');

// Defining style function
function style() {
  return (
    gulp
      .src('css/**/**.scss')
      // Initialize souremaps before compilation starts
      .pipe(sourcemaps.init())
      // Compile sass to css
      .pipe(sass())
      // Error handler for compilation errors
      .on('error', sass.logError)
      // Use postcss with autoprefixer
      .pipe(postcss([autoprefixer()]))
      // Now add/write the sourcemaps
      .pipe(sourcemaps.write('./'))
      .pipe(gulp.dest('css'))
      // Add browsersync stream pipe after compilation
  );
}
exports.style = style;

// Define gulp watcher function
function watch() {
  style();

  // Run style function on sass changes
  gulp.watch('css/**/*.scss', style);
}
exports.watch = watch;

// Define default task
exports.default = watch;

【问题讨论】:

    标签: javascript gulp gulp-watch


    【解决方案1】:

    我自己找到了答案。问题是文件系统通知没有从主机转发到客户机,这应该会触发 gulp watch。

    你可以使用https://github.com/mhallin/notify-forwarder来解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-31
      • 2018-01-01
      • 1970-01-01
      • 2010-12-24
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多