Gulp-eslint генерирует ошибки на динамически загружаемых JS

У меня есть структура проекта, как

Есть около 10 файлов JS в com, lab1 а также lab2 имеет config.json файл, который сообщает, из 10 файлов, какие файлы должны быть объединены и размещены как app-min.js в dist/lab1 или же dist/lab2,

В файле gulp я создал что-то вроде этого.

var filesArr = [];
var labName;

// Player Task
gulp.task('player', function () {
  return gulp.src(filesArr)
    .pipe(eslint())
    .pipe(babel())
    .pipe(concat('app-min.js'))
    .pipe(uglify({
      compress: {
        drop_console: true
      }
    }).on('error', gutil.log))
    .pipe(gulp.dest('dist/' + labName));
});

// Clean
gulp.task('clean', function () {
  if (readJson()) {
    return del([
      'dist/' + labName
    ]);
  }
  return null;
});

// Watch
gulp.task('watch', function () {
  gulp.watch(filesArr, gulp.series('player'));
});

// Read Json and create JS Array
function readJson() {
  // LAB STRUCTURE
  var _n = prompt('Specify the LAB name. ');
  labName = _n;
  var _path = path.resolve('./src/' + _n);
  var _exists = fs.existsSync(_path);
  if (_exists) {
    var _json = fs.readFileSync(path.resolve(_path + '/labstructure.json'), 'utf-8');
    var _jObj = JSON.parse(_json).labObj.components;
    for (var i = 0; i < _jObj.length; i++) {
      var _jsName = 'src/com/component/' + _jObj[i].ref + '.js';
      if (filesArr.indexOf(_jsName) === -1) {
        filesArr.push(_jsName);
      }
    }
  }
  return _exists;
}

gulp.task('default', gulp.series('clean', 'player', 'watch'));

Здесь filesArr похоже:

[ 'src/com/component/ColorActClass.js',
  'src/com/component/PanelCompClass.js',
  'src/com/component/ToggleCompClass.js',
  'src/com/component/SliderCompClass.js',
  'src/com/component/CheckBoxCompClass.js',
  'src/com/component/ButtonCompClass.js',
  'src/com/component/LabelCompClass.js',
  'src/com/component/InputBoxClass.js',
  'src/com/component/ColorMonitorClass.js',
  'src/com/component/MsgBoxClass.js',
  'src/com/component/ConfBoxClass.js',
  'src/com/component/NumberPadClass.js',
  'src/com/main/lib/webfontloader.js',
  'src/com/main/lib/howler.core.min.js',
  'src/com/main/PlayerClass.js',
  'src/kl1001_color/BrainClass.js' ]

Это прекрасно работает в первую очередь. Но когда любой JS изменяется, то в watchplayer броски задач eslint ошибка на некоторых файлах, которые остаются нетронутыми. Это происходит не всегда, а если часы работают в течение 10-20 минут, они выдают ошибку. Как это:

В этом случае CheckBoxCompClass.js это не файл, который был изменен, но все же получил проблему. Кроме того, точка с запятой на месте. Если этот файл имеет проблемы, то eslint должен был выбросить ошибку на первом месте.

Пожалуйста помоги.

1 ответ

Решение

Случайно, мой NVM был установлен на более старую версию. Решил проблему после обновления NVM и установки текущей версии NVM на последнюю.

Другие вопросы по тегам