У меня есть приложение Angular, которое работает, если я загружаю все сценарии вручную, но терпит неудачу, когда я пытаюсь использовать gulp-concat для использования одного файла bundle.js.
Я загружаю AngularJS и jQuery из CDN перед остальными сценариями, но я использую ngSanitize и ngRoute из локальных файлов. Как я уже сказал, все работает, когда я загружаю их все по отдельности.
Кажется, jQuery работает (некоторые задачи, связанные с jQuery, работают на сайте при использовании сценария bundle.js).
Я получаю 2 ошибки консоли в следующем порядке: Uncaught TypeError: $(...).ready(...) is not a function
и Uncaught Error: [$injector:modulerr]
.
Я проверил строку, где говорится, что первая ошибка возникает в файле bundle.js, но я даже не использую там .ready()
, поэтому я немного запутался.
Я также пытался загрузить модули ngSantize и ngRoute из CDN вместо того, чтобы использовать их локально, но это не сработало. Я уже читал здесь на SO, чтобы попробовать использовать угловой ресурс, который я пробовал, но не повезло. Я также использую 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.