Skip to content

Commit 3189f29

Browse files
committed
feat(server): 添加代理功能
1 parent 4380c73 commit 3189f29

File tree

3 files changed

+28
-6
lines changed

3 files changed

+28
-6
lines changed

lib/commands/server.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,31 @@ var connect = require('connect'),
77
moment = require('moment'),
88
livereload = require('livereload'),
99
connectLivereload = require('connect-livereload'),
10+
child_process = require('child_process'),
1011
webpackDevMiddleware = require("webpack-dev-middleware");
1112

1213
var Manager = require('../modules/manager.js');
1314

1415
exports.usage = "开发服务";
1516

1617
exports.setOptions = function (optimist) {
17-
optimist.alias('s', 'https');
18-
optimist.describe('s', '使用https协议');
1918
optimist.alias('p', 'port');
2019
optimist.describe('p', '端口');
20+
optimist.alias('x', 'proxy');
21+
optimist.describe('x', '启用proxy代理服务');
2122
optimist.alias('m', 'middlewares');
2223
optimist.describe('m', '加载项目中间件');
2324
optimist.alias('l', 'livereload');
24-
optimist.describe('l', '实时自动刷新');
25+
optimist.describe('l', '自动刷新');
26+
// optimist.alias('s', 'https');
27+
// optimist.describe('s', '使用https协议');
2528
};
2629

2730
exports.run = function (options) {
2831
var app = connect(),
2932
cwd = options.cwd,
3033
hot = options.h || options.hot,
34+
proxy = options.x || options.proxy,
3135
middlewares = options.m || options.middlewares,
3236
https = options.s || options.https,
3337
enableLivereload = options.l || options.livereload,
@@ -160,6 +164,12 @@ exports.run = function (options) {
160164
warn('Listening on port ' + port);
161165
});
162166

167+
// 代理
168+
if (proxy) {
169+
var proxyPath = sysPath.join(require.resolve('@qnpm/jerryproxy-ykit'), '../bin/jerry.js');
170+
child_process.fork(proxyPath);
171+
}
172+
163173
// 权限降级
164174
if (process.env['SUDO_UID']) {
165175
process.setuid(parseInt(process.env['SUDO_UID']));

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
},
1212
"license": "MIT",
1313
"dependencies": {
14+
"@qnpm/jerryproxy-ykit": "^1.0.3",
1415
"async": "^1.5.2",
1516
"colors": "^1.1.2",
1617
"connect": "^3.4.1",

src/commands/server.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,31 @@ let connect = require('connect'),
77
moment = require('moment'),
88
livereload = require('livereload'),
99
connectLivereload = require('connect-livereload'),
10+
child_process = require('child_process'),
1011
webpackDevMiddleware = require("webpack-dev-middleware");
1112

1213
let Manager = require('../modules/manager.js');
1314

1415
exports.usage = "开发服务";
1516

1617
exports.setOptions = (optimist) => {
17-
optimist.alias('s', 'https');
18-
optimist.describe('s', '使用https协议');
1918
optimist.alias('p', 'port');
2019
optimist.describe('p', '端口');
20+
optimist.alias('x', 'proxy');
21+
optimist.describe('x', '启用proxy代理服务');
2122
optimist.alias('m', 'middlewares');
2223
optimist.describe('m', '加载项目中间件');
2324
optimist.alias('l', 'livereload');
24-
optimist.describe('l', '实时自动刷新');
25+
optimist.describe('l', '自动刷新');
26+
// optimist.alias('s', 'https');
27+
// optimist.describe('s', '使用https协议');
2528
};
2629

2730
exports.run = (options) => {
2831
let app = connect(),
2932
cwd = options.cwd,
3033
hot = options.h || options.hot,
34+
proxy = options.x || options.proxy,
3135
middlewares = options.m || options.middlewares,
3236
https = options.s || options.https,
3337
enableLivereload = options.l || options.livereload,
@@ -161,8 +165,15 @@ exports.run = (options) => {
161165
warn('Listening on port ' + port);
162166
})
163167

168+
// 代理
169+
if(proxy){
170+
const proxyPath = sysPath.join(require.resolve('@qnpm/jerryproxy-ykit'), '../bin/jerry.js')
171+
child_process.fork(proxyPath);
172+
}
173+
164174
// 权限降级
165175
if (process.env['SUDO_UID']) {
166176
process.setuid(parseInt(process.env['SUDO_UID']));
167177
}
178+
168179
};

0 commit comments

Comments
 (0)