Gulp-Eslint在动态加载的JS上引发错误

时间:2019-03-11 07:54:33

标签: gulp-eslint

我有一个像这样的项目结构

Folder Structure

com中大约有10个JS文件。 lab1lab2有一个config.json文件,该文件告诉10个文件中的哪些文件要串联并放置为app-min.js或{{1}中的dist/lab1 }。

在gulp文件中,我创建了类似的内容。

dist/lab2

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

首先,这很好用。但是,如果修改了任何JS,则在[ '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' ] watch任务中,某些未修改的文件会引发player错误。这并非总是会发生,而是如果手表运行10-20分钟,则会引发错误。像这样:

Error Image

在这种情况下,eslint不是被修改的文件,但是仍然存在问题。最重要的是,分号就位。如果此文件有问题,则CheckBoxCompClass.js应该首先将错误引发。

请帮助。

1 个答案:

答案 0 :(得分:0)

偶然地,我的NVM设置为旧版本。通过更新NVM并将当前NVM版本设置为最新版本,解决了该问题。