Yeoman generator-angular: 'task wiredep' не е в gulpfile & $.useref.restore не е функция

Току-що започнах да използвам Yeoman за скеле на ново приложение Angular. Следвах ръководството за инсталиране в generator-angular, но избрах да използвам gulp вместо grunt за програмата за изпълнение на задачи .

След инсталирането получих грешка: task 'wiredep' is not in you gulpfile.

Опитах да стартирам компилацията с помощта на gulp и получих грешка: TypeError: $.useref.restore is not a function

Ако стартирам gulp serve, получената страница не свързва зависимости.

Има ли корекция на горните грешки?

Забелязах, че Yeoman използва grunt и този gulp е експериментален, така че предполагам, че горните грешки са очаквани. Трябва ли да го публикувам като проблем на страницата на GitHub на генератора?


person Anugerah Erlaut    schedule 01.11.2015    source източник


Отговори (2)


Има малко проблеми там.

1-ви проблем yeoman има предвид gulp wiredep, а не gulp bower: преименувайте gulp.task('bower', function ()на { gulp.task('wiredep', function () {

2-ри проблем е, че bower libs не са в directory: yeoman.app + '/bower_components', а в directory: 'bower_components',

3-ти брой .pipe(gulp.dest(yeoman.app + '/views'));не е в папката с изгледи, а .pipe(gulp.dest(yeoman.app ));

Накратко, заменете gulp.task('bower', function ...с:

gulp.task('wiredep', function () {
return gulp.src(paths.views.main)
.pipe(wiredep({
  directory: 'bower_components',
  ignorePath: '..'
}))
.pipe(gulp.dest(yeoman.app ));
});

Изтрийте папката dist, стартирайте gulp wiredep, gulp и gulp serve или добавете wiredep задача към компилацията.

Надяваме се, че това го изяснява.

person Patrik Bego    schedule 18.03.2016
comment
Работи за задачата „изграждане“, но когато стартирам задачата „serve“ на gulp не работи. Някаква идея? - person Adrian Rodriguez; 18.03.2016
comment
Извеждането на регистрационния файл на конзолата би било хубаво... Но опитайте да промените порта. Сървърът стартира без проблем за мен (извън кутията), само че в индекса липсваха кабелни зависимости. - person Patrik Bego; 20.03.2016
comment
@PatrikBego След промените, които препоръчахте, грешката изчезна, но компонентите на Bower все още не са свързани. Грешката е просто 404 за всички компоненти на bower: GET localhost:9000/bower_components/ bootstrap/dist/css/ (index):75 GET localhost:9000/ bower_components/jquery/dist/jquery.js (индекс):76 GET localhost:9000 /bower_components/angular/angular.js (индекс):77 GET localhost:9000/bower_components/bootstrap/dist/js/bootstrap.js (индекс):78 ВЗЕМЕТЕ localhost:9000/bower_components/angular-animate/ ... и продължава! - person user1242321; 15.06.2016
comment
@user1242321 вижте този проблем: github.com/yeoman/generator-angular/issues/1299. Там ще намерите Gulpfile, който работи. - person Maria Ines Parnisari; 25.06.2016

Сблъсках се със същия проблем. Реших го, като направих промените по-долу в gulp задачата 'client:build'. ОБАЧЕ, разрешаването на това просто ще ви отведе до следващия проблем. Гледането не работи, презареждането на живо не работи и след това нямах повече време да се опитвам да намеря още проблеми. Но виждам, че вашата грешка е докладвана в Github (Връзка за справка: https://github.com/yeoman/generator-angular/issues/1199), така че да се надяваме, че някой може да го поправи.

Освен това, както казахте, Gulp е експериментален в този генератор.

gulp.task('client:build', ['html', 'styles'], function() {
var jsFilter = $.filter('**/*.js');
var cssFilter = $.filter('**/*.css');

var assets = $.useref.assets({
    searchPath: [yeoman.app, '.tmp']
});

return gulp.src(paths.views.main)
    .pipe(assets)
    .pipe(jsFilter)
    .pipe($.ngAnnotate())
    .pipe($.uglify())
    .pipe(jsFilter.restore())
    .pipe(cssFilter)
    .pipe($.minifyCss({
      cache: true
    }))
    .pipe(cssFilter.restore())
    .pipe($.rev())
    .pipe(assets.restore())
    .pipe($.revReplace())
    .pipe($.useref())
    .pipe(gulp.dest(yeoman.dist));
});
person Kidde82    schedule 04.11.2015