NodeJS,gulp,错误:听EADDRINUSE ::: 3000

时间:2017-03-22 12:03:26

标签: javascript html node.js gulp

我正在使用NodeJS,我正在使用gulp。

我的看起来像那样:

Root 
  dist
  node_modules
  src
    index.html
  gulpfile.js
  package.json

我的gulpfile是:

"use strict";

var gulp = require('gulp');
var connect = require('gulp-connect'); // runs a local dev server 
var open = require('gulp-open'); // open a URL in a web browser

var config ={
    port : 3000,
    devBaseUrl : 'http://localhost',
    paths:{
        html:'./src/*.html',
        dist:'./dist'
    }
}

//Start a local development server 
gulp.task = ('connect' , function(){
    connect.server({
        root:['dist'],
        port: config.port,
        base: config.devBaseUrl,
    }); 
});

gulp.task('open', ['connect'], function(){
    gulp.src('dist/index.html').pipe(open({uri: config.devBaseUrl + ":" + config.port + '/'}))
});

gulp.task('html',function(){
    gulp.src(config.paths.html)
        .pipe(gulp.dest(config.paths.dist))
        .pipe(connect.reload());
});

gulp.task('default', ['html', 'open']);

当我输入“gulp'在cmd中我收到此错误:

C:\Users\maor\Documents\NodeProject\2>gulp
[13:18:28] Using gulpfile ~\Documents\NodeProject\2\gulpfile.js
[13:18:28] Server started http://localhost:3000
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::3000
    at Object.exports._errnoException (util.js:1018:11)
    at exports._exceptionWithHostPort (util.js:1041:20)
    at Server._listen2 (net.js:1262:14)
    at listen (net.js:1298:10)
    at Server.listen (net.js:1394:5)
    at ConnectApp.server (C:\Users\maor\Documents\NodeProject\2\node_modules\gulp-connect\index.js:57:19)
    at new ConnectApp (C:\Users\maor\Documents\NodeProject\2\node_modules\gulp-connect\index.js:37:10)
    at Object.server (C:\Users\maor\Documents\NodeProject\2\node_modules\gulp-connect\index.js:170:12)
    at Gulp.gulp.task (C:\Users\maor\Documents\NodeProject\2\gulpfile.js:18:10)
    at Object.<anonymous> (C:\Users\maor\Documents\NodeProject\2\gulpfile.js:29:6)

我真的不知道问题是什么,我已经检查过并且端口:3000是免费的。你能帮助我解决问题所在吗?

3 个答案:

答案 0 :(得分:6)

您是否正在运行可能正在使用端口3000的任何其他应用程序?

以前的节点实例可能仍在运行,即使您打算将其终止。检查您的流程,我有时会遇到此问题并且通常会使用

ArrayList

解决它。

答案 1 :(得分:4)

当节点进程已在端口上运行时,会出现此问题。

您可以通过

修复它

pkill节点

或者你可以使用这个

killall节点

您仍然可以使用以下命令查看节点进程:ps aux | grep节点。

如果您使用的是Windows,请打开任务管理器&amp;在进程选项卡中,搜索节点&amp;右键点击该流程&amp;结束过程。

当然会起作用。

答案 2 :(得分:4)

或者更好的是,您可以将端口号更改为其他类似8000的内容。