Yeoman generator-angular : 'task wiredep' 不在 gulpfile 中 & $.useref.restore 不是一个函数
Yeoman generator-angular : 'task wiredep' is not in gulpfile & $.useref.restore is not a function
我刚刚开始使用 Yeoman 构建一个新的 Angular 应用程序。我遵循 generator-angular 的安装指南,但选择使用 gulp 而不是 g运行t 来完成 运行ner.
任务
安装后我收到错误:task 'wiredep' is not in you gulpfile
。
我尝试 运行 使用 gulp
构建并收到错误:TypeError: $.useref.restore is not a function
如果我 运行 gulp serve
,生成的页面不会连接依赖项。
是否有解决上述错误的方法?
我注意到 Yeoman 使用 g运行t,而 gulp 是实验性的,所以我猜上述错误是预料之中的。我应该 post 在生成器的 GitHub 页面上将其作为问题吗?
我运行遇到了同样的问题。
我通过对 gulp 任务 'client:build' 进行以下更改来解决它。
但是,解决这个问题只会让您遇到下一个问题。
Watch 不起作用,实时重新加载不起作用,然后我没有更多时间尝试查找更多问题。
但是我在 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));
});
里面的问题很少。
第一期 yeoman 指的是 gulp wiredep 而不是 gulp bower:
将 gulp.task('bower', function ()
重命名为 { gulp.task('wiredep', function () {
第二个问题是 bower 库不在 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 任务添加到构建中。
希望这能说明问题。
我刚刚开始使用 Yeoman 构建一个新的 Angular 应用程序。我遵循 generator-angular 的安装指南,但选择使用 gulp 而不是 g运行t 来完成 运行ner.
任务安装后我收到错误:task 'wiredep' is not in you gulpfile
。
我尝试 运行 使用 gulp
构建并收到错误:TypeError: $.useref.restore is not a function
如果我 运行 gulp serve
,生成的页面不会连接依赖项。
是否有解决上述错误的方法?
我注意到 Yeoman 使用 g运行t,而 gulp 是实验性的,所以我猜上述错误是预料之中的。我应该 post 在生成器的 GitHub 页面上将其作为问题吗?
我运行遇到了同样的问题。 我通过对 gulp 任务 'client:build' 进行以下更改来解决它。 但是,解决这个问题只会让您遇到下一个问题。 Watch 不起作用,实时重新加载不起作用,然后我没有更多时间尝试查找更多问题。 但是我在 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));
});
里面的问题很少。
第一期 yeoman 指的是 gulp wiredep 而不是 gulp bower:
将 gulp.task('bower', function ()
重命名为 { gulp.task('wiredep', function () {
第二个问题是 bower 库不在 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 任务添加到构建中。
希望这能说明问题。