часы глотка не запускаются на NFS доли - PullRequest
0 голосов
/ 01 апреля 2020

У меня проблема с тем, что часы gulp не запускаются в моей настройке. В моем случае у меня есть веб-проект, работающий на виртуальной машине.

Hostmachine: MA C OSX Guestmachine: Ubuntu Server

Файлы проекта живут на хост-машине, и я использую NFS для общего доступа файлы с гостевой машины в папке / var / www/project.

Когда я запускаю gulp watch на хост-машине, все работает нормально, но я бы предпочел запустить его на гостевой машине, потому что я хочу, чтобы пользователь browsersyn c, который я не могу запустить с хост-машины с веб-сервером на гостевой машине. Когда я запускаю gulp watch на гостевой машине, gulp запускается нормально, а также запускает начальные задачи sass, но gulp watch никогда не вызывает никаких изменений. Когда я копирую общие файлы проекта в свою домашнюю папку на гостевой машине и запускаю gulp watch, все снова работает отлично. Таким образом, кажется, что проблема из-за общего ресурса NFS, но я не знаю почему. Я уже пытался установить различные разрешения, но безуспешно.

Любая идея, что не так? Может быть, у кого-то есть и решение, что я могу запустить browsersyn c с хост-машины, но я думаю, что это невозможно.

Ниже вы можете увидеть код из моего файла 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;

1 Ответ

0 голосов
/ 01 апреля 2020

Я нашел ответ сам. Проблема в том, что уведомления файловой системы не пересылаются с хоста на гостя, что должно вызывать gulp watch.

Вы можете использовать https://github.com/mhallin/notify-forwarder для решения этой проблемы.

...