2017-01-12 5 views
1

Я получил эту ошибку:Uncaught RangeError: Максимальный размер стеки вызовов превысил работает развитие черновой

angular.js:4767 Uncaught RangeError: Maximum call stack size exceeded 
    at Object.invoke (angular.js:4767) 
    at angular.js:4574 
    at forEach (angular.js:325) 
    at createInjector (angular.js:4574) 
    at doBootstrap (angular.js:1805) 
    at bootstrap (angular.js:1826) 
    at angularInit (angular.js:1711) 
    at HTMLDocument.<anonymous> (angular.js:32539) 
    at fire (jquery.js:3187) 
    at Object.fireWith [as resolveWith] (jquery.js:3317) 

Я знаю, что это не петля в моем коде, так как тот же проект работает в других средах, так что я подозреваю, что проблема находится в моем node или grunt.

node v5.3.0 
grunt v0.4.5 
grunt-cli v1.2.0 

Вот команда хрюкать для разработчика:

grunt.registerTask('dev', ['ngconstant:dev', 'dom_munger:read', 'jshint', 'ngtemplates', 'less', 'connect', 'watch']); 

и packages.json:

{ 
    "name": "myapp.maso.app", 
    "version": "1.0.0-beta.172", 
    "repository": { 
    "type": "git", 
    "url": "" 
    }, 
    "devDependencies": { 
    "chai": "^3.5.0", 
    "chromedriver": "~2.21.2", 
    "grunt": "~0.4.5", 
    "grunt-angular-templates": "~1.0.3", 
    "grunt-browser-output": "1.0.3", 
    "grunt-connect-proxy": "^0.2.0", 
    "grunt-contrib-clean": "~1.0.0", 
    "grunt-contrib-concat": "~1.0.0", 
    "grunt-contrib-connect": "~1.0.0", 
    "grunt-contrib-copy": "~1.0.0", 
    "grunt-contrib-cssmin": "~1.0.1", 
    "grunt-contrib-htmlmin": "~1.1.0", 
    "grunt-contrib-imagemin": "~1.0.0", 
    "grunt-contrib-jshint": "~1.0.0", 
    "grunt-contrib-less": "^1.2.0", 
    "grunt-contrib-uglify": "~1.0.1", 
    "grunt-contrib-watch": "~1.0.0", 
    "grunt-dom-munger": "~3.4", 
    "grunt-karma": "~0.12.2", 
    "grunt-manifest": "^0.4.4", 
    "grunt-ng-annotate": "^2.0.1", 
    "grunt-ng-constant": "^2.0.1", 
    "grunt-npm-install": "^0.3.1", 
    "grunt-protractor-runner": "~3.0.0", 
    "grunt-serve": "^0.1.6", 
    "grunt-version": "^1.0.0", 
    "jshint-stylish": "^2.1.0", 
    "karma": "^0.13.22", 
    "karma-chai": "^0.1.0", 
    "karma-chrome-launcher": "~0.2.2", 
    "karma-firefox-launcher": "~0.1.7", 
    "karma-jasmine": "~0.3.8", 
    "karma-mocha": "^0.2.2", 
    "karma-mocha-reporter": "~2.0.0", 
    "karma-ng-html2js-preprocessor": "^0.2.1", 
    "karma-ng-json2js-preprocessor": "^1.1.2", 
    "karma-phantomjs-launcher": "^1.0.0", 
    "less": "^2.6.1", 
    "load-grunt-tasks": "~3.4.1", 
    "mocha": "^2.4.5", 
    "protractor": "~3.2.1", 
    "webdriver-manager": "~8.0.0" 
    } 
} 

Если кто-то может помочь моей отладки это, я Пытается многие другие вопросы и проблемы GitHub и все еще я не могу это решить.

Если есть дополнительная информация, пожалуйста, прокомментируйте ниже.

EDIT - все мои задачи Грунт:

grunt.registerTask('dev', ['ngconstant:dev', 'dom_munger:read', 'jshint', 'ngtemplates', 'less', 'connect', 'watch']); 
grunt.registerTask('live', ['ngconstant:live', 'dom_munger:read', 'jshint', 'ngtemplates', 'less', 'connect', 'watch']); 

// isracard development environment 
grunt.registerTask('devi', ['ngconstant:devi', 'dom_munger:read', 'jshint', 'less', 'connect', 'watch']); 
grunt.registerTask('livei', ['ngconstant:livei', 'dom_munger:read', 'jshint', 'less', 'connect', 'watch']); 
grunt.registerTask('forms', ['ngconstant:forms', 'dom_munger:read', 'jshint', 'less', 'connect', 'watch']); 

// build 
grunt.registerTask('build', ['ngconstant:live', 'version:project:prerelease', 'jshint', 'clean:before', 'less', 'dom_munger', 'ngtemplates', 'cssmin', 'concat', 'ngAnnotate', 'copy', 'htmlmin', 'manifest', 'clean:after']); 

grunt.registerTask('test', ['ngconstant:mock', 'dom_munger:read', 'karma:all_tests']); 
grunt.registerTask('e2e', ['dom_munger:read', 'protractor']); 

Большое спасибо.

ответ

0

Ну, GruntJSFAQ говорит, что

Возможно, вы создали псевдоним задание с таким же именем, как один из ваших регулярных задач

Пример:grunt.registerTask('uglify', ['uglify:my_target']); должен быть grunt.registerTask('myUglify', ['uglify:my_target']);.

Проверьте, не были ли сделаны какие-либо ошибки.

Надеюсь, это поможет!

+0

Я не уверен, добавляя все мои задачи. –

0

Таким образом, это означает, что вы превысили максимальное количество вызовов, разрешенных двигателем JS. Это может означать одно из двух:

  1. У вас есть какой-то бесконечный рекурсивный цикл somewhere-- функция, которая продолжает называть себя, никогда не нарушая/выход, или даже группы функций, заходящих друг на друг по кругу в подобном манера. В какой-то момент двигатель говорит, что достаточно и выходит.
  2. Альтернативно, если вы используете какую-то задачу, которая разбивает файлы (думаю, шаблоны или JSON) по строке в строки и объединяет их вместе в Javascript, возможно, у вас есть файл с таким количеством строк, что явное число используемых операторов + приводит к переполнению размера стека. Я сам наткнулся на это сам, пытаясь ввести ложные данные в тесты Karma - видимо, 11 000 строк слишком много, чтобы их объединить.

К сожалению, нет отличного способа протестировать это, кроме как пытаться изолировать свой код по частям и посмотреть, можете ли вы отследить проблему. Одна вещь, которая может помочь, - использовать инструмент node-inspector и настроить его на разрыв, прежде чем бросать ошибку, как в Chrome, - тогда вы можете исследовать стек вызовов и посмотреть, сможете ли вы чему-нибудь научиться, проследив его. Удачи!

(Обратите внимание, что это не эксклюзивный список-- могут быть и другие причины - это только те два, с которыми я встречался чаще всего).

+0

Привет, как я сказал, проект работает в других средах разработки, поэтому, чтобы сузить причины, я думаю, что это где-то в моих настройках или настройках узла. –

+0

Нет разных файлов, используемых в разных средах? –

+0

Нет, тот же репозиторий git. –

 Смежные вопросы

  • Нет связанных вопросов^_^