我正在使用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是免费的。你能帮助我解决问题所在吗?
答案 0 :(得分:6)
您是否正在运行可能正在使用端口3000的任何其他应用程序?
以前的节点实例可能仍在运行,即使您打算将其终止。检查您的流程,我有时会遇到此问题并且通常会使用
ArrayList
解决它。
答案 1 :(得分:4)
当节点进程已在端口上运行时,会出现此问题。
您可以通过
修复它pkill节点
或者你可以使用这个
killall节点
您仍然可以使用以下命令查看节点进程:ps aux | grep节点。
如果您使用的是Windows,请打开任务管理器&amp;在进程选项卡中,搜索节点&amp;右键点击该流程&amp;结束过程。
当然会起作用。
答案 2 :(得分:4)
或者更好的是,您可以将端口号更改为其他类似8000的内容。