2015-12-01 3 views
1

Я получаю следующую ошибку при обращении к Gulp для обслуживания статического содержимого и загрузки веб-сервера. Я следую за профессиональной книгой angularJS. и package.json, и gulpfile находятся в одной папке.TypeError при использовании gulp для обслуживания статических файлов

[21:30:44] Using gulpfile ~/Desktop/pro-angular2/gulpfile.js 
[21:30:44] Starting 'connect'... 
[21:30:44] 'connect' errored after 96 ms 
[21:30:44] TypeError: undefined is not a function 
    at Gulp.<anonymous> (/home/kj/Desktop/pro-angular2/gulpfile.js:17:18) 
    at module.exports (/home/kj/Desktop/pro-angular2/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:34:7) 
    at Gulp.Orchestrator._runTask (/home/kj/Desktop/pro-angular2/node_modules/gulp/node_modules/orchestrator/index.js:273:3) 
    at Gulp.Orchestrator._runStep (/home/kj/Desktop/pro-angular2/node_modules/gulp/node_modules/orchestrator/index.js:214:10) 
    at Gulp.Orchestrator.start (/home/kj/Desktop/pro-angular2/node_modules/gulp/node_modules/orchestrator/index.js:134:8) 
    at /usr/local/lib/node_modules/gulp/bin/gulp.js:129:20 
    at process._tickCallback (node.js:355:11) 
    at Function.Module.runMain (module.js:503:11) 
    at startup (node.js:129:16) 
    at node.js:814:3 

ниже мой Глоток код

var gulp = require('gulp'); 

var $ = require('gulp-load-plugins')(); 

gulp.task('default',[],function(){ 

}); 

gulp.task('connect', function() { 
    var serveStatic = require('serve-static'); 
    var serveIndex = require('serve-index'); 
    var connect = require('connect'); 
    var app = connect() 
    .use(require('connect-livereload')({ 
     port: 35729 
    })) 
    .use(connect.serveStatic('app')) 
    .use(connect.serveIndex('app')); 
    require('http').createServer(app) 
    .listen(9000) 
    .on('listening', function() { 
     console.log('Started connect web server on http://localhost:9000'); 
    }); 
}); 

и мой файл package.json

{ 
    "name": "pro-angular2", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "author": "", 
    "license": "ISC", 
    "devDependencies": { 
    "connect": "^3.4.0", 
    "connect-livereload": "^0.5.4", 
    "grunt": "^0.4.5", 
    "grunt-contrib-connect": "^0.11.2", 
    "grunt-contrib-jshint": "^0.11.3", 
    "grunt-contrib-less": "^1.1.0", 
    "grunt-contrib-watch": "^0.6.1", 
    "gulp": "^3.9.0", 
    "gulp-jshint": "^2.0.0", 
    "gulp-less": "^3.0.5", 
    "gulp-livereload": "^3.8.1", 
    "gulp-load-plugins": "^1.1.0", 
    "jshint": "^2.8.0", 
    "load-grunt-tasks": "^3.3.0", 
    "opn": "^3.0.3" 
    } 
} 

Это древовидное

. 
|-- app 
| |-- app.js 
| |-- bower_components 
| |-- index.html 
| |-- main.css 
| `-- main.less 
|-- bower.json 
|-- gruntfile.js 
|-- gulpfile.js 
|-- node_modules 
| |-- connect 
| |-- connect-livereload 
| |-- grunt 
| |-- grunt-contrib-connect 
| |-- grunt-contrib-jshint 
| |-- grunt-contrib-less 
| |-- grunt-contrib-watch 
| |-- gulp 
| |-- gulp-jshint 
| |-- gulp-less 
| |-- gulp-livereload 
| |-- gulp-load-plugins 
| |-- jshint 
| |-- load-grunt-tasks 
| |-- opn 
| |-- serve-index 
| `-- serve-static 
`-- package.json 
+0

Есть ли причина, что вы используете подключения, а не просто что-то вроде [HTTP-сервер] (https://www.npmjs.com/package/http -server)? Похоже, что все, что вы делаете, просто служит для каталога 'app' как статического сайта. –

+0

Я не уверен, как использовать http-сервер, так как я только начал изучать javascript на стороне сервера ... приведенный выше код был на самом деле в учебнике, в котором я следую ... у вас есть хорошие ресурсы, которые я может читать? – Kannaj

+0

Не то, что пойдет с тем, что вы делаете прямо сейчас. Я бы рекомендовал http-server или live-server и npmscript, поэтому 'npm install http-server -save' (или live-server), а затем в разделе« scripts »package.json« запустить »: «http-server -p 9000 ./app». Здесь нет необходимости в глотании. Тем не менее, это сильно отличается от учебника, в котором вы работаете. –

ответ

1

server-static и serve-index не являются частью от connect больше. Они были извлечены как отдельные модули. У вас есть эти отдельные модули включены, так что просто использовать:

.use(serveStatic('app')) 
.use(serveIndex('app')); 
+0

сейчас работает .. спасибо – Kannaj

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