From e426048e6ff66bb8beca3ff7f91d801b5f54316b Mon Sep 17 00:00:00 2001 From: Mate Solymosi Date: Tue, 4 Feb 2020 17:16:23 +0100 Subject: [PATCH] Add `--ip` option to `docsify serve` to override listen host (defaults to `127.0.0.1`) --- README.md | 4 ++++ lib/cli.js | 9 ++++++++- lib/commands/serve.js | 8 +++++--- tools/locales/de.json | 1 + tools/locales/en.json | 1 + tools/locales/zh.json | 1 + 6 files changed, 20 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8aaa08a..13b5116 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,10 @@ docsify serve [--open false] [--port 3000] - Type: number - Default: `3000` - Description: Choose a listen port, defaults to `3000`. +- `--ip` option: + - Type: string + - Default: `127.0.0.1` + - Description: Choose a listen IP, defaults to `127.0.0.1`. ## Contributing diff --git a/lib/cli.js b/lib/cli.js index 777a4a3..f5ec02e 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -67,6 +67,13 @@ require('yargs') requiresArg: true, type: 'number' }, + ip: { + default: '127.0.0.1', + desc: chalk.gray(y18n.__('serve.ip')), + nargs: 1, + requiresArg: true, + type: 'string' + }, 'livereload-port': { alias: 'P', default: 35729, @@ -83,7 +90,7 @@ require('yargs') type: 'string' } }), - handler: argv => run.serve(argv.path, argv.open, argv.port, argv.P, argv.i) + handler: argv => run.serve(argv.path, argv.open, argv.port, argv.ip, argv.P, argv.i) }) .command({ command: 'start ', diff --git a/lib/commands/serve.js b/lib/commands/serve.js index 13de4b8..3d83296 100644 --- a/lib/commands/serve.js +++ b/lib/commands/serve.js @@ -13,6 +13,7 @@ module.exports = function ( path, openInBrowser, port, + ip, livereloadPort, indexName ) { @@ -46,7 +47,7 @@ module.exports = function ( }) ) server.use(serveStatic(path, {index: indexName})) - server.listen(port) + server.listen(port, ip) lrserver .createServer({ extraExts: ['md'], @@ -56,7 +57,8 @@ module.exports = function ( .watch(path) if (openInBrowser) { - open(`http://localhost:${port}`) + const host = ip === '0.0.0.0' ? 'localhost' : ip + open(`http://${host}:${port}`) } const msg = @@ -64,7 +66,7 @@ module.exports = function ( chalk.green(`${path}`) + ' now.\n' + 'Listening at ' + - chalk.green(`http://localhost:${port}`) + + chalk.green(`http://${ip}:${port}`) + '\n' console.log(msg) }) diff --git a/tools/locales/de.json b/tools/locales/de.json index ec3f5db..581dc27 100644 --- a/tools/locales/de.json +++ b/tools/locales/de.json @@ -9,6 +9,7 @@ "serve": "Lasse lokalen Server zur Webseitenvorschau laufen.", "serve.open": "Dokumentation im Standardbrowser öffnen. Um explizit --open auf false zu setzen, kannst du --no-open verwenden.", "serve.port": "Listen port.", + "serve.ip": "Listen IP.", "serve.indexname": "Custom filename instead of index.html to serve by default", "livereload.port": "livereload Listen port.", "usage": "Anwendung", diff --git a/tools/locales/en.json b/tools/locales/en.json index 02f915d..a557fc5 100644 --- a/tools/locales/en.json +++ b/tools/locales/en.json @@ -9,6 +9,7 @@ "serve": "Run local server to preview site.", "serve.open": "Open docs in default browser. To explicitly set --open to false you may use --no-open.", "serve.port": "Listen port.", + "serve.ip": "Listen IP.", "serve.indexname": "Custom filename instead of index.html to serve by default", "livereload.port": "livereload Listen port.", "usage": "Usage", diff --git a/tools/locales/zh.json b/tools/locales/zh.json index 58a2e68..722bdda 100644 --- a/tools/locales/zh.json +++ b/tools/locales/zh.json @@ -9,6 +9,7 @@ "serve": "本地预览", "serve.open": "自动打开浏览器", "serve.port": "设置端口", + "serve.ip": "Listen IP.", "serve.indexname": "Custom filename instead of index.html to serve by default", "livereload.port": "设置livereload端口", "usage": "例子",