2016-09-14 3 views
1

Я возобновляю работу над угловым приложением, которое я начал в качестве стажера около 12 месяцев назад. Ранее не было ошибок, с которыми я сталкиваюсь. Теперь, когда я клонировать хранилище на мой новый компьютер, и даже мой старый компьютер, на котором я первоначально разработал приложение, я получаю следующие ошибки:Ошибка в полностью неизмененном исходном коде

(intermediate value)(intermediate value)(...) is not a function

Failed to instantiate module app due to Error: [$injector:modulerr] Failed to instantiate module ngSanitize due to: Module 'ngSanitize' is not available

bower.json

"dependencies": { 
    "angular": "~1.4.7", 
    "angular-bootstrap": "~0.14.3", 
    "angular-ui-router": "~0.2.15", 
    "bootstrap": "~3.3.5", 
    "checklist-model": "~0.6.0", 
    "font-awesome": "fontawesome#~4.4.0", 
    "ngSignaturePad": "*", 
    "signature_pad": "~1.5.1", 
    "angular-bootstrap-datetimepicker": "latest", 
    "moment": "~2.10.6", 
    "angular-sanitize": "~1.4.7", 
    "ui-select": "angular-ui-select#~0.13.2", 
    "angular-touch": "~1.4.7", 
    "angular-ui-grid": "~3.0.7", 
    "angular-spinner": "~0.8.0", 
    "angularPrint": "angular-print#~0.3.8", 
    "lodash": "~4.13.1" 
}, 
"resolutions": { 
    "angular": "~1.4.7" 
} 

0 Модульвключен в gulpfile для js-зависимостей и указан в angular.module.

gulp.task('js-deps', function() { 
gulp.src([ 
    './public/bower_components/moment/moment.js', 
    './public/bower_components/jquery/dist/jquery.min.js', 
    './public/bower_components/bootstrap/dist/js/bootstrap.js', 
    './public/bower_components/lodash/dist/lodash.min.js', 
    './public/bower_components/angular/angular.min.js', 
    './public/bower_components/angular-ui-grid/ui-grid.min.js', 
    './public/bower_components/angular-ui-router/release/angular-ui-router.min.js', 
    './public/bower_components/checklist-model/checklist-model.js', 
    './public/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js', 
    './public/bower_components/signature_pad/signature_pad.js', 
    './public/bower_components/ngSignaturePad/ngSignaturePad.min.js', 
    './public/bower_components/angular-bootstrap-datetimepicker/src/js/datetimepicker.js', 
    './public/bower_components/angular-sanitize/angular-sanitize.min.js', 
    './public/bower_components/ui-select/dist/select.min.js', 
    './public/bower_components/angular-touch/angular-touch.min.js', 
    './public/bower_components/spin.js/spin.min.js', 
    './public/bower_components/angular-spinner/angular-spinner.min.js', 
    './public/bower_components/angularPrint/angularPrint.js' 
    ]) 
    .pipe(concat('deps.js')) 
    .pipe(gulp.dest('./build/js')); 

angular-sanitize.min.js.map также включен

gulp.src([ 
    './public/bower_components/angular/angular.min.js.map', 
    './public/bower_components/angular-sanitize/angular-sanitize.min.js.map', 
    './public/bower_components/angular-touch/angular-touch.min.js.map' 
    ]) 
    .pipe(gulp.dest('./build/js')); 

Угловой модуль

angular.module('app', [ 
    'ui.grid', 
    'ui.router', 
    'ui.bootstrap', 
    'checklist-model', 
    'ngSignaturePad', 
    'ui.bootstrap.datetimepicker', 
    'ngSanitize', 
    'ui.select', 
    'ngTouch', 
    'angularSpinner', 
    'AngularPrint' 
    ]) 

Хорошая вещь, что я узнал большой урок на важность захвата моей среды такими инструментами, как Docker и бродячие файлы.

Я пытаюсь думать о том, что было между тем, когда я впервые разработал приложение и сейчас.

На моем старом компьютере я с тех пор обновляется npm, nodejs, и, возможно, но я не уверен, gulp -g и bower -g.

Я не думаю, что есть проблема с npm или nodejs, потому что проблема не связана с зависимостями сервера или npm. Я могу запустить сервер просто отлично. Ошибка отображается в консоли браузера. Проблема может заключаться в том, что gulp создает код.

Я попытался установить более старые версии каждого из них, переустановить зависимости, а затем перестроить код, но безуспешно.

Я вижу код кода зависимостей с ngSanitize, но я не знаю, что искать, если в сборке есть ошибка.

Где я могу найти следующую подсказку, чтобы решить эту проблему?

ответ

1

Спасибо моему наставнику, Грегу, за то, что помогли мне разобраться в этом.

Эта ошибка является неясным и решение не пролить свет на то, почему все это произошло, но вот это:

Все после ui.bootstrap.datetimepicker терпит неудачу.

angular.module('app', [ 
    'ui.grid', 
    'ui.router',, 
    'ui.bootstrap', 
    'checklist-model', 
    'ngSignaturePad', 
    'ui.bootstrap.datetimepicker', 
    'ngSanitize', 
    'ui.select', 
    'ngTouch', 
    'angularSpinner', 
    'AngularPrint' 
    ]) 

Если я закомментировать ngSanitize, то ui.select не удается, так далее и так далее.

Если я добавлю точку с запятой в конец файла datetimepicker.js, работы и ошибки сборки больше не будут. Рельеф, но все же разочарование.

Для кого-то еще с этой же проблемой, вот как я изменил свой gulpfile, чтобы добавить в нужный ;.

npm install --save gulp-insert

Требовать gulp-insert в gulpfile

Добавить .pipe(insert.append(';')) до того файла конкатенация происходит

var insert = require('gulp-insert'); 
    ... 
    ... 
    './public/bower_components/angular-spinner/angular-spinner.min.js', 
    './public/bower_components/angularPrint/angularPrint.js' 
]) 
.pipe(insert.append(';')) 
.pipe(concat('deps.js')) 
.pipe(gulp.dest('./build/js')); 
Смежные вопросы