Предупреждение: connect.static не является функцией Use -force для продолжения
Я использую проект YO lessapp, "grunt-contrib-connect" помогает мне запустить сервер node js на 9000 порту. Всякий раз, когда я запускаю службу grunt (запуск сервера), служба прерывается из-за нижеследующего предупреждения.
Running "connect:livereload" (connect) task
Warning: connect.static is not a function Use --force to continue.
Точная ошибка произошла в следующей функции в Gruntfile.js
livereload: {
options: {
middleware: function(connect) {
return [
connect.static('.tmp'),
connect().use('/bower_components', connect.static('./bower_components')),
connect.static(config.app)
];
}
}
},
Я установил
npm install grunt-contrib-connect --save-dev
npm install serve-static --save-dev
Я столкнулся с несколькими сообщениями, некоторые предлагают отключить брандмауэр, но не повезло.
Я знаю, что есть что-то связанное с моей машиной или конфликтами между версиями npm/ node/connect, потому что я пытался запустить одно и то же приложение с другого компьютера, и он отлично работает.
Конфигурация системы:
Я установил connect и serve-static на основе post nodejs connect не может найти статический файл, но все же тот же
Любая помощь? Спасибо в Advance
Ответы
Ответ 1
Вам нужно установить connect
и serve-static
:
npm install --save-dev grunt-contrib-connect serve-static
И тогда вам нужно импортировать serve-static
в Gruntfile.js
:
module.exports = function (grunt) {
...
var serveStatic = require('serve-static');
grunt.initConfig({
...
connect: {
...
livereload: {
options: {
middleware: function(connect) {
return [
serveStatic('.tmp'),
connect().use('/bower_components', serveStatic('./bower_components')),
serveStatic(config.app)
];
}
}
}
Ответ 2
В версии 0.11.x новый grunt-contrib-connect
не поддерживает connect.static
и connect.directory
.
Вы должны установить serve-static
(для подачи статических файлов) и serve-index
(для Обслуживает страницы, содержащие списки каталогов для заданного пути).
вот так:
var serveStatic = require('serve-static');
var serveIndex = require('serve-index');
Используйте serveStatic
вместо connect.static
и
serveIndex
вместо connect.directory
grunt.initConfig({
connect: {
options: {
test: {
directory: 'somePath',
middleware: function(connect, options){
var _staticPath = path.resolve(options.directory);
return [serveStatic(_staticPath), serveIndex(_staticPath)]
}
}
}
}
})