diff --git a/bin/next-build b/bin/next-build index e52d0ce35e82a..553c312edcf98 100755 --- a/bin/next-build +++ b/bin/next-build @@ -1,9 +1,10 @@ #!/usr/bin/env node import { resolve, join } from 'path' -import { exists } from 'mz/fs' +import { existsSync } from 'fs' import parseArgs from 'minimist' import build from '../server/build' +import { printAndExit } from '../lib/utils' const argv = parseArgs(process.argv.slice(2), { alias: { @@ -29,21 +30,17 @@ if (argv.help) { const dir = resolve(argv._[0] || '.') // Check if pages dir exists and warn if not -exists(dir) -.then(async () => { - if (!(await exists(join(dir, 'pages')))) { - if (await exists(join(dir, '..', 'pages'))) { - console.error('> No `pages` directory found. Did you mean to run `next` in the parent (`../`) directory?') - } else { - console.error('> Couldn\'t find a `pages` directory. Please create one under the project root') - } - process.exit(1) +if (!existsSync(dir)) { + printAndExit(`> No such directory exists as the project root: ${dir}`) +} + +if (!existsSync(join(dir, 'pages'))) { + if (existsSync(join(dir, '..', 'pages'))) { + printAndExit('> No `pages` directory found. Did you mean to run `next` in the parent (`../`) directory?') } -}) -.catch((err) => { - console.error(err) - process.exit(1) -}) + + printAndExit('> Couldn\'t find a `pages` directory. Please create one under the project root') +} build(dir) .catch((err) => { diff --git a/bin/next-dev b/bin/next-dev index 4c86f50206f87..5cef200bbb8b5 100755 --- a/bin/next-dev +++ b/bin/next-dev @@ -2,8 +2,9 @@ import 'source-map-support/register' import { resolve, join } from 'path' import parseArgs from 'minimist' -import { exists } from 'mz/fs' +import { existsSync } from 'fs' import Server from '../server' +import { printAndExit } from '../lib/utils' const argv = parseArgs(process.argv.slice(2), { alias: { @@ -38,21 +39,17 @@ if (argv.help) { const dir = resolve(argv._[0] || '.') // Check if pages dir exists and warn if not -exists(dir) -.then(async () => { - if (!(await exists(join(dir, 'pages')))) { - if (await exists(join(dir, '..', 'pages'))) { - console.error('> No `pages` directory found. Did you mean to run `next` in the parent (`../`) directory?') - } else { - console.error('> Couldn\'t find a `pages` directory. Please create one under the project root') - } - process.exit(1) +if (!existsSync(dir)) { + printAndExit(`> No such directory exists as the project root: ${dir}`) +} + +if (!existsSync(join(dir, 'pages'))) { + if (existsSync(join(dir, '..', 'pages'))) { + printAndExit('> No `pages` directory found. Did you mean to run `next` in the parent (`../`) directory?') } -}) -.catch((err) => { - console.error(err) - process.exit(1) -}) + + printAndExit('> Couldn\'t find a `pages` directory. Please create one under the project root') +} const srv = new Server({ dir, dev: true }) srv.start(argv.port) diff --git a/lib/utils.js b/lib/utils.js index 567314eb9cab8..f9116cb952103 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -21,3 +21,13 @@ export function deprecated (fn, message) { return newFn } + +export function printAndExit (message, code = 1) { + if (code === 0) { + console.log(message) + } else { + console.error(message) + } + + process.exit(code) +}