Skip to content

Commit 6946bcf

Browse files
committed
## 0.6.3
* 添加--host * 添加port占用报错
1 parent 6616e36 commit 6946bcf

File tree

6 files changed

+49
-37
lines changed

6 files changed

+49
-37
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
/src/index.html
44
/test
55
/3th
6+
/.idea

bin/nodeppt

+3-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ var opts = {
1515
'-d': '--dir',
1616
'-f': '--file',
1717
'-o': '--output',
18-
'-a': '--all'
19-
}
18+
'-a': '--all',
19+
'-h': '--host'
20+
};
2021

2122
var argv = parseArgs(process.argv);
2223
var action = argv.slice(2, 3).toString();

changelog.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1+
## 0.6.3
2+
* 添加--host
3+
* 添加port占用报错
4+
15
## 0.6.1
26
* 修复bug:copy img等
7+
38
## 0.6.0
49
* 新增导出功能:```nodeppt generate```
510
* 去除grunt依赖

lib/nodePPT.js

+24-23
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ var ppt = module.exports = {
3838
for (var i = 0, len = args.length; i < len; i++) {
3939
switch (args[i]) {
4040
case '--output':
41-
output = args[i + 1] ? args[i + 1] : 8080;
41+
output = args[i + 1] ? args[i + 1] : '';
4242
i++;
4343
break;
4444
}
@@ -69,44 +69,45 @@ var ppt = module.exports = {
6969

7070
console.log(' ________________|'.bold.green + 'nodePPT帮助'.bold.red + '|_______________'.bold.green);
7171
console.log(' | |'.bold.green);
72-
console.log(' | nodeppt start: 启动服务 |'.bold.green);
72+
console.log(' | nodeppt start: 启动httpserver |'.bold.green);
7373
console.log(' | nodeppt start -p 8000: 启动8000端口 |'.bold.green);
74-
console.log(' | nodeppt start -p 8000 -d ./ |'.bold.green);
74+
console.log(' | nodeppt start -p 8000 -d ./ 指定路径 |'.bold.green);
75+
console.log(' | nodeppt start -h 127.0.0.1 指定host |'.bold.green);
7576
console.log(' | nodeppt create fileName: 创建一个ppt |'.bold.green);
7677
console.log(' | nodeppt pdf url -o a.pdf: 输出一个pdf |'.bold.green);
7778
console.log(' | nodeppt generate path: 输导出html |'.bold.green);
7879
console.log(' |____________________________________________|'.bold.green);
7980
},
8081
start: function(args) {
8182
//启动
82-
var port = 8080;
83-
var dir = '',
84-
file;
8583
var self = this;
86-
for (var i = 0, len = args.length; i < len; i++) {
87-
switch (args[i]) {
88-
case '--port':
89-
port = args[i + 1] ? args[i + 1] : 8080;
90-
i++;
91-
break;
92-
case '--file':
93-
file = args[i + 1] ? args[i + 1] : '';
94-
break;
95-
case '--dir':
96-
dir = args[i + 1] ? args[i + 1] : null;
97-
i++;
98-
break;
84+
85+
var argsObj = {
86+
port: 8080,
87+
dir: '',
88+
host: '127.0.0.1',
89+
file: ''
90+
};
91+
args = args.join(' ').split('--');
92+
args.forEach(function(v, i) {
93+
v = v.trim();
94+
if (v !== '') {
95+
v = v.split(/\s+/);
96+
if (v.length === 2) {
97+
argsObj[v[0]] = v[1];
98+
}
9999
}
100-
}
100+
});
101+
// console.log(argsObj);
102+
103+
var dir = argsObj.dir;
101104
if (dir === '') {
102105
dir = path.join(rootDir, 'ppts');
103106
}
104107

105-
106108
if (!fs.existsSync(dir)) {
107109
dir = path.join(self.cwd, dir);
108110
if (!fs.existsSync(dir)) {
109-
110111
return console.log('\nERROR: '.bold.red + dir + ' 不是一个正确路径');
111112
}
112113

@@ -117,7 +118,7 @@ var ppt = module.exports = {
117118
}
118119
}
119120

120-
require(libDir + '/server').start(port, dir);
121+
require(libDir + '/server').start(argsObj.port, dir, argsObj.host);
121122
},
122123
create: function(args) {
123124
var curRoot = process.cwd();

lib/server.js

+15-11
Original file line numberDiff line numberDiff line change
@@ -101,14 +101,14 @@ module.exports.start = function(port, pptDir) {
101101

102102
}
103103

104-
function startApp(port, dir) {
104+
function startApp(port, dir, host) {
105+
host = host || '127.0.0.1';
105106
var staticDir = path.normalize(path.join(__dirname, '../assets')) + path.sep;
106107
var pptDir = (dir || path.join(__dirname, '../ppts')) + path.sep;
107108
try {
108109
pptDir = fs.realpathSync(pptDir) + path.sep;
109110
} catch (e) {}
110-
console.log('Server :'.cyan + 'http://127.0.0.1:' + port);
111-
console.log('ppt directory : '.cyan + pptDir + '\n' + 'assets directory : '.cyan + staticDir);
111+
112112
var now = Date.now();
113113
var app = connect(
114114
connect.cookieParser(),
@@ -152,26 +152,30 @@ function startApp(port, dir) {
152152

153153
realPath = pptDir + basename;
154154
console.log('markdown', realPath);
155-
156155
markdown(realPath, basename, res)
157156
return;
158-
159157
} else {
160158
//优先选择pptDir的静态资源
161159
realPath = pptDir + url;
162160
if (!fs.existsSync(realPath)) {
163161
realPath = staticDir + url;
164162
}
165-
166163
ext = path.extname(realPath);
167164
ext = ext ? ext.slice(1) : 'unknown';
168165
}
169-
170166
assets(realPath, ext, url, res);
171-
172-
}).listen(port);
173-
174-
return app;
167+
}).listen(port, host);
168+
return app.on('listening', function() {
169+
var server = app.address();
170+
console.log('ppt directory : '.cyan + pptDir + '\n' + 'assets directory : '.cyan + staticDir);
171+
console.log('nodeppt server started : '.bold.green + server.address + ':' + server.port);
172+
}).on('error', function(e) {
173+
if (e.code === 'EADDRINUSE') {
174+
console.log('ERROR: '.red + 'port ' + port + ' is in use!');
175+
} else {
176+
console.log('ERROR: '.red + e.code);
177+
}
178+
});
175179
}
176180

177181
function assets(realPath, ext, url, res) {

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "nodeppt",
33
"jsname": "nodeppt",
44
"description": "Create a PowerPoint presentation with Markdown",
5-
"version": "0.6.2",
5+
"version": "0.6.3",
66
"site": "https://github.com/ksky521/nodePPT",
77
"author": {
88
"name": "Theo Wang",

0 commit comments

Comments
 (0)