4

我刚刚开始使用 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 页面上吗?

4

2 回答 2

7

里面的问题很少。

第 1 期 yeoman 指的是 gulp wireep 而不是 gulp bower:重命名gulp.task('bower', function (){ gulp.task('wiredep', function () {

第二个问题是凉亭库不在directory: yeoman.app + '/bower_components',而是在directory: 'bower_components'

第三个问题.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 wiredepgulpgulp serve/或将wiredep 任务添加到构建中。

希望这可以澄清它。

于 2016-03-18T00:14:41.850 回答
1

我遇到了同样的问题。我通过对 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));
});
于 2015-11-04T08:26:21.023 回答