【问题标题】:Yeoman generator-angular : 'task wiredep' is not in gulpfile & $.useref.restore is not a functionYeoman generator-angular:“taskwiredep”不在 gulpfile 中,并且 $.useref.restore 不是函数
【发布时间】:2015-11-01 04:46:17
【问题描述】:

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

【问题讨论】:

    标签: gulp yeoman yeoman-generator yeoman-generator-angular gulp-useref


    【解决方案1】:

    那里的问题很少。

    第 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'));不在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 任务添加到构建中。

    希望这可以澄清它。

    【讨论】:

    【解决方案2】:

    我遇到了同样的问题。 我通过对 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));
    });
    

    【讨论】:

      猜你喜欢
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 2013-05-13
      • 2017-11-11
      • 2016-01-12
      • 1970-01-01
      相关资源
      最近更新 更多