AngularJS未捕获错误:使用gulp-concat后出现[$ injector:modulerr]错误

时间:2016-03-12 00:50:14

标签: javascript jquery angularjs gulp gulp-concat

我有一个Angular应用程序,如果我手动加载所有脚本,但是一旦我尝试使用gulp-concat使用单个bundle.js文件就失败了。

我在其余脚本之前从CDN加载AngularJS和jQuery,但我确实使用了来自本地文件的ngSanitize和ngRoute。正如我所说,当我单独加载它们时,一切都有效。

jQuery似乎有效(使用bundle.js脚本时,一些与jQuery相关的任务在网站上运行)。

我按此顺序收到2个控制台错误: Uncaught TypeError: $(...).ready(...) is not a functionUncaught Error: [$injector:modulerr]

我检查了bundle.js文件中出现第一个错误的行,但是我甚至没有使用.ready(),所以我有点困惑。

我已经尝试从CDN加载ngSantize和ngRoute模块,而不是在本地使用它们但是没有用。我已经在这里阅读了尝试使用角度资源,我试过,但没有任何运气。我还使用gulp-order来确保所有内容的加载顺序与我手动加载的顺序相同。

这是我的gulpfile.js:

var gulp = require('gulp');
var concat = require('gulp-concat');
var order = require("gulp-order");

gulp.task('scripts', function() {
  return gulp.src('./js/**/*.js')
  .pipe(order([
    "main.js",
    "others/*.js",
    "controllers/*.js",
    "modules/*.js",
    "directives/*.js",
    "filters/*.js"
  ]))
  .pipe(concat('bundle.js'))
  .pipe(gulp.dest('./js/'));
});

gulp.task('default', ['scripts']);

当我检查bundle.js文件时,一切看起来都在那里,并且顺序就像我手动加载它一样。

我还需要做些什么吗?

更新

我还尝试下载AngularJS和jQuery的最新缩小版本并将它们捆绑到我的bundle.js文件中,但是我遇到了同样的Uncaught Error: [$injector:modulerr]错误。当我不将它们包含在bundle.js中而是在bundle.js之前调用它们时,结果相同。

1 个答案:

答案 0 :(得分:0)

Gulp在配置中不影响字符串。 使状态和路由器提供程序成为示例中显示的字符串。

var myApp = angular.module('myApp', ['ui.router'])         

// configuring our routes 
myApp.config(['$stateProvider', '$urlRouterProvider',function($stateProvider, $urlRouterProvider) {    
    $stateProvider    
        // route to show our basic form in login page
        .state('login', {
            url: '/login',
            templateUrl: 'views/login.html',
            controller: 'LoginController'
        })
}]);