我刚刚开始使用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页面上将其作为问题发布吗?
答案 0 :(得分:7)
那里几乎没有问题。
第一期yeoman指的是gulp wiredep而不是gulp bower:
将gulp.task('bower', function ()
重命名为{ gulp.task('wiredep', function () {
第二个问题是bower libs不在directory: yeoman.app + '/bower_components'
,而在directory: 'bower_components'
,
第3期.pipe(gulp.dest(yeoman.app + '/views'));
不在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任务添加到构建文件夹中。
希望这能澄清它。
答案 1 :(得分:1)
我遇到了同样的问题。 我通过对下面的更改来解决这个问题,即客户:构建'。 但是,解决这个问题只会让你遇到下一个问题。 观看不起作用,实时重新加载不起作用,然后我没有时间试图找到更多问题。 但是我在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));
});