diff --git a/.gitignore b/.gitignore index ee3f397f..6e3a9a82 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -/node_modules/ +node_modules/ coverage/ -!test/fixtures/**/node_modules/ +!test/fixtures/custom-framework-app/node_modules/ .tmp diff --git a/lib/helper.js b/lib/helper.js index c5e4d06e..7f9a9a41 100644 --- a/lib/helper.js +++ b/lib/helper.js @@ -4,6 +4,7 @@ const fs = require('fs'); const path = require('path'); const glob = require('glob'); const detect = require('detect-port'); +const debug = require('debug')('egg-bin:helper'); exports.defaultPort = 7001; exports.serverBin = path.join(__dirname, 'start-cluster'); @@ -73,11 +74,13 @@ exports.formatArgs = function* (cwd, args, options) { // auto detect available port if (args.indexOf('-p') === -1 && args.indexOf('--port') === -1) { + debug('detect available port'); const port = yield detect(exports.defaultPort); if (port !== exports.defaultPort) { args.push('-p', port); console.warn(`[egg-bin] server port ${exports.defaultPort} is in use, now using port ${port}\n`); } + debug(`use available port ${port}`); } return args; }; diff --git a/lib/start-cluster b/lib/start-cluster index ffe654b1..d3373c60 100755 --- a/lib/start-cluster +++ b/lib/start-cluster @@ -9,7 +9,7 @@ const commander = require('commander'); commander .option('--eggPath [eggPath]') .option('--baseDir [baseDir]') - .option('--port [port]') + .option('-p, --port [port]') .option('--cluster [workers]') .allowUnknownOption(true) .parse(process.argv); diff --git a/test/egg-dev.test.js b/test/egg-dev.test.js index 3f9eaada..ca3dbca6 100644 --- a/test/egg-dev.test.js +++ b/test/egg-dev.test.js @@ -17,7 +17,7 @@ describe('egg-bin dev', () => { .end(done); }); - it('should startCluster with port', done => { + it('should startCluster with --port', done => { coffee.fork(eggBin, [ 'dev', '--port', '6001' ], { cwd: appdir }) // .debug() .expect('stdout', `{"baseDir":"${appdir}","workers":1,"port":"6001","customEgg":"${customEgg}"}\n`) @@ -25,6 +25,14 @@ describe('egg-bin dev', () => { .end(done); }); + it.only('should startCluster with -p', done => { + coffee.fork(eggBin, [ 'dev', '-p', '6001' ], { cwd: appdir }) + // .debug() + .expect('stdout', `{"baseDir":"${appdir}","workers":1,"port":"6001","customEgg":"${customEgg}"}\n`) + .expect('code', 0) + .end(done); + }); + it('should startCluster with custom yadan framework', done => { const baseDir = path.join(__dirname, 'fixtures/custom-framework-app'); const customEgg = path.join(baseDir, 'node_modules', 'yadan');