2016-08-25 5 views
0

Части моего файла gulp ничего не делают, я не получаю ошибок, но необходимый файл не отображается (или не изменяется).Gulp не создает файл

Полный gulpFile находится ниже; и в то время как gulp task 'vendor' делает то, что он должен делать - (создает файлы в каталоге 'build') ... задачи gulp 'js' и 'build' НЕ создают ожидаемые «app.js» в 'build' реж.

С «JS» и «сборки» использовать «событие-поток» и функция getTemplateStream(), я подозреваю, что проблема есть

для подтверждения; если удалить эти элементы, это работает:

gulp.task('x', function() { 
    gulp.src(source.js.src) 
     .pipe(concat('app.js')) 
     .pipe(gulp.dest('build')) 
}); 

Я не могу console.log() или получить ошибку - так что я в недоумении Любая помощь - высоко оценили

/* 
    GULP BUILD SYSTEM 
    -Will watch and compress files, as needed, restart server on change in dev mode 
    -Will create a single "vendor.js" uglified file for any JS files specified in the "app.scripts.json" file 
    -will move condensed files to "build" 
*/ 
var es = require('event-stream'); 
var gulp = require('gulp'); 
var concat = require('gulp-concat'); 
var connect = require('gulp-connect'); 
var templateCache = require('gulp-angular-templatecache'); 
var ngAnnotate = require('gulp-ng-annotate'); 
var uglify = require('gulp-uglify'); 
var gutil = require('gulp-util'); 
var fs = require('fs'); 
var _ = require('lodash'); 

var scripts = require('./app.scripts.json'); // for vendor.js 
var source = { 
    js: { 
     main: 'app/main.js', 
     src: [ 'app.config.js', 
       'app/main.js', 
       'app/app.js', 
       'app/**/module.js', 
       'app/**/!(module)*.js' ], 
     tpl: 'app/**/*.tpl.html' 
    } 
}; 

var destinations = { 
    js: 'build' 
}; 



// FUNCTIONS 
var swallowError = function(error) { 

    console.error.bind(error.toString()); 
    this.emit('end'); 

}; 

var getTemplateStream = function() { 

    return 
    gulp.src(source.js.tpl) 
     .pipe(templateCache({ 
      root: 'app/', 
      module: 'app' 
     })) 

}; 


// GULP TASKS 
gulp.task('build', function() { 
    return 
    es.merge(gulp.src(source.js.src) , getTemplateStream()) 
     .pipe(ngAnnotate()) 
     .pipe(uglify()) 
     .pipe(concat('app.js')) 
     .on('error', swallowError) 
     .pipe(gulp.dest(destinations.js)); 
}); 


gulp.task('js', function() { 
    return 
    es.merge(gulp.src(source.js.src) , getTemplateStream()) 
     .pipe(concat('app.js')) 
     .on('error', swallowError) 
     .pipe(gulp.dest(destinations.js)); 

}); 


gulp.task('vendor', function() { 

    _.forIn(scripts.chunks, function(chunkScripts, chunkName) { 

     var paths = []; 

     chunkScripts.forEach(function(script) { 

      var scriptFileName = scripts.paths[script]; 

      if (!fs.existsSync(__dirname + '/' + scriptFileName)) { 

       throw console.error('Required path doesn\'t exist: ' + __dirname + '/' + scriptFileName, script); 

      } 

      paths.push(scriptFileName); 
      //console.log('vendor file ' + scriptFileName + ' added to vendor.js.'); 

     }); 

     gulp.src(paths) 
      .pipe(concat(chunkName + '.js')) 
      .on('error', swallowError) 
      .pipe(gulp.dest(destinations.js)) 

    }); 

}); 


gulp.task('watch', function() { 

    gulp.watch(source.js.src, ['js']); 
    gulp.watch(source.js.tpl, ['js']); 

}); 


gulp.task('connect', function() { 

    connect.server({ 
     port: 8888 
    }); 

}); 

gulp.task('prod', ['vendor', 'build']); 
gulp.task('dev', ['vendor', 'js', 'watch', 'connect']); 
gulp.task('default', ['dev']); 
// END GULP TASKS 
+0

Возможный дубликат [Что такое правила автоматической вставки точки с запятой JavaScript (ASI)?] (Http://stackoverflow.com/questions/2846283/what-are-the-rules-for-javascripts-automatic-semicolon- вставка-ася) –

ответ

0

Sven (очень пассивно агрессивным образом) указал на ответ.

Выпуску JavaScript автоматически вставляя ... точка с запятой, с классическим примером оператора возврата: (найдено около 1/2 вниз упомянутой страницы)

return 
    "something"; 
// is transformed to 
return; 
    "something"; 

таким образом делая эти корректировки - исправлен мой вопрос ,

Свен, я не согласен, что это был дублированный вопрос, хотя ответ был тот же. Я не знаю, как «посмотреть» на исходный пост. Вы могли бы просто направить меня на пост в качестве ответа.

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

Смежные вопросы