运行gulp时的模块错误:dist

时间:2016-02-19 08:25:04

标签: angularjs gulp bower

我为我的应用配置了gulp。

与gulp一起运行时,一切都很好。

但是当我和gulp一起跑时:dist

我收到以下错误

Uncaught Error: [$injector:modulerr] Failed to instantiate module xxx due to:
Error: [$injector:nomod] Module 'xxx' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

请帮我解决这个问题

我的gulp文件位于

之下
/**
*  Welcome to your gulpfile!
*  The gulp tasks are splitted in several files in the gulp directory
*  because putting all here was really too long
*/

'use strict';

var gulp = require('gulp');
var wrench = require('wrench');

/**
*  This will load all js or coffee files in the gulp directory
*  in order to load all gulp tasks
*/
wrench.readdirSyncRecursive('./gulp').filter(function(file) {
return (/\.(js|coffee)$/i).test(file);
}).map(function(file) {
 require('./gulp/' + file);
});


/**
 *  Default task clean temporaries directories and launch the
 *  main optimization build task
 */
gulp.task('default', ['clean'], function () {
  gulp.start('build');
});

和gulp文件夹中的build.js文件

'use strict';

var path = require('path');
var gulp = require('gulp');
var conf = require('./conf');

var $ = require('gulp-load-plugins')({
    pattern: ['gulp-*', 'main-bower-files', 'uglify-save-license', 'del']
});

gulp.task('partials', function () {
    return gulp.src([
        path.join(conf.paths.src, '/app/**/*.html'),
        path.join(conf.paths.tmp, '/serve/app/**/*.html')
    ])
    .pipe($.minifyHtml({
        empty: true,
        spare: true,
        quotes: true
    }))
    .pipe($.angularTemplatecache('templateCacheHtml.js', {
        module: 'xxx',
        root: 'app',
        templateHeader: '(function() { angular.module("<%= module %>"<%= standalone %>).run(["$templateCache", function($templateCache) {',
        templateFooter: '}]);})();'
    }))
    .pipe(gulp.dest(conf.paths.tmp + '/partials/'));
 });

 gulp.task('html', ['inject', 'partials'], function () {
      var partialsInjectFile = gulp.src(path.join(conf.paths.tmp, '/partials/templateCacheHtml.js'), { read: false });
  var partialsInjectOptions = {
      starttag: '<!-- inject:partials -->',
      ignorePath: path.join(conf.paths.tmp, '/partials'),
      addRootSlash: false
  };

  var htmlFilter = $.filter('*.html', { restore: true });
  var jsFilter = $.filter('**/*.js', { restore: true });
  var cssFilter = $.filter('**/*.css', { restore: true });
  var assets;

  return gulp.src(path.join(conf.paths.tmp, '/serve/*.html'))
     .pipe($.inject(partialsInjectFile, partialsInjectOptions))
     .pipe(assets = $.useref.assets())
     .pipe($.rev())
     .pipe(jsFilter)
     .pipe($.sourcemaps.init())
     .pipe($.ngAnnotate())
     .pipe($.uglify({ preserveComments: $.uglifySaveLicense })).on('error',     conf.errorHandler('Uglify'))
     .pipe($.sourcemaps.write('maps'))
     .pipe(jsFilter.restore)
     .pipe(cssFilter)
     .pipe($.sourcemaps.init())
     .pipe($.replace('../../bower_components/material-design-iconfont/iconfont/', '../fonts/'))
     .pipe($.minifyCss({ processImport: false }))
     .pipe($.sourcemaps.write('maps'))
     .pipe(cssFilter.restore)
     .pipe(assets.restore())
     .pipe($.useref())
     .pipe($.revReplace())
     .pipe(htmlFilter)
     .pipe($.minifyHtml({
          empty: true,
          spare: true,
          quotes: true,
          conditionals: true
      }))
     .pipe(htmlFilter.restore)
     .pipe(gulp.dest(path.join(conf.paths.dist, '/')))
     .pipe($.size({ title: path.join(conf.paths.dist, '/'), showFiles: true              }));
   });

   // Only applies for fonts from bower dependencies
   // Custom fonts are handled by the "other" task
   gulp.task('fonts', function () {
   return gulp.src($.mainBowerFiles().concat('bower_components/material-design-iconfont/iconfont/*'))
     .pipe($.filter('**/*.{eot,svg,ttf,woff,woff2}'))
     .pipe($.flatten())
     .pipe(gulp.dest(path.join(conf.paths.dist, '/fonts/')));
   });

   gulp.task('other', function () {
       var fileFilter = $.filter(function (file) {
       return file.stat.isFile();
   });

   return gulp.src([
       path.join(conf.paths.src, '/**/*'),
       path.join('!' + conf.paths.src, '/**/*.{html,css,js}')
   ])
   .pipe(fileFilter)
   .pipe(gulp.dest(path.join(conf.paths.dist, '/')));
 });

 gulp.task('clean', function () {
     return $.del([path.join(conf.paths.dist, '/'), path.join(conf.paths.tmp,     '/')]);
 });

 gulp.task('build', ['html', 'fonts', 'other']);

1 个答案:

答案 0 :(得分:0)

你的问题似乎与我所面对的相似。 尝试检查您已定义routeConfig的js文件。它可能缺少一些必需的功能。

或者检查用于注射的@ngInject注释。 可能是你错过了这个注释的遗漏或评论了一个函数。