#node.js #express #gruntjs
#node.js #экспресс #gruntjs
Вопрос:
Мой вопрос в том, как мне заставить grunt сообщать об ошибке, как сценарий запуска узла по умолчанию. В моем последнем проекте node / express я пытаюсь использовать диспетчер задач Grunt и изменил сценарий запуска с
"start": "node ./bin/www"
Для
"start": "grunt"
Проблема в том, что когда я запускаю «npm start» или «grunt», отчета об ошибке недостаточно.
[nodemon]app crashed - waiting for file changes before starting //error reported by grunt
Когда я изменил сценарий запуска обратно на «node ./ bin / www», я смог увидеть ошибку, например
Error: Cannot find module mongoose //error reported by node
Это показывает мне, что я забыл установить npm mongoose. Итак, как я могу заставить Grunt сообщить об этой ошибке?
Редактировать: еще один пример ошибки, о которой сообщает узел
MissingSchemaError: Schema hasnt been registed for model "Admin" //error reported by node
Редактировать 2: gruntfile.js конфигурация выглядит следующим образом
/**** other configurations to minify and uglify ****/
nodemon: {
dev: {
script: 'server.js'
}
},
// run watch and nodemon at the same time
concurrent: {
options: {
logConcurrentOutput: true
},
tasks: ['nodemon', 'watch']
}
grunt.loadNpmTasks('grunt-nodemon');
grunt.loadNpmTasks('grunt-concurrent');
Ответ №1:
Вы можете добиться этого двумя способами:
-
Вы можете указать
--stack
параметр в командной строке:"start": "grunt --stack"
-
Вы можете включить эту
stack
опцию в своемgruntfile.js
:grunt.option("stack", true);
Комментарии:
1. —stack по какой-то причине не сообщает об ошибке. Там просто написано «приложение разбилось — ожидание изменений файла перед запуском».
2. Затем выполняется задача grunt
nodemon
, которая улавливает ошибку и сообщает о ней. Вам нужно будет включить конфигурацию для указанной задачи в свой вопрос.3. Я отредактировал вопрос, чтобы показать gruntfile.js относящийся к nodemon.