Подтвердить что ты не робот

Предупреждение: 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

4b9b3361

Ответ 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)]
               }
            }
        }
    }
})