diff --git a/bin/blogi.js b/bin/blogi.js index c9fd9746ac..e58c5861ef 100644 --- a/bin/blogi.js +++ b/bin/blogi.js @@ -1,58 +1,58 @@ -#!/usr/bin/env node - -const chalk = require('chalk'); -const semver = require('semver'); -const path = require('path'); -const program = require('commander'); -const {dev, build} = require('../lib'); -const requiredVersion = require('../package.json').engines.node; - -if (!semver.satisfies(process.version, requiredVersion)) { - console.log( - chalk.red(`\nMinimum node version not met :)`) + - chalk.yellow( - `\nYou are using Node ${ - process.version - }, but blogi requires Node ${requiredVersion}.\n` - ) - ); - process.exit(1); -} - -function wrapCommand(fn) { - return (...args) => - fn(...args).catch(err => { - console.error(chalk.red(err.stack)); - process.exitCode = 1; - }); -} - -program - .version(require('../package.json').version) - .usage(' [options]'); - -program - .command('dev [targetDir]') - .description('start development server') - .option('-p, --port ', 'use specified port (default: 8080)') - .action((dir = '.', {port}) => { - wrapCommand(dev)(path.resolve(dir), {port}); - }); - -program - .command('build [targetDir]') - .description('build dir as static site') - .option( - '-d, --dest ', - 'specify build output dir (default: .blogi/dist)' - ) - .action((dir = '.', {dest}) => { - const outDir = dest ? path.resolve(dest) : null; - wrapCommand(build)(path.resolve(dir), {outDir}); - }); - -program.parse(process.argv); - -if (!process.argv.slice(2).length) { - program.outputHelp(); -} +#!/usr/bin/env node + +const chalk = require('chalk'); +const semver = require('semver'); +const path = require('path'); +const program = require('commander'); +const {dev, build} = require('../lib'); +const requiredVersion = require('../package.json').engines.node; + +if (!semver.satisfies(process.version, requiredVersion)) { + console.log( + chalk.red(`\nMinimum node version not met :)`) + + chalk.yellow( + `\nYou are using Node ${ + process.version + }, but blogi requires Node ${requiredVersion}.\n` + ) + ); + process.exit(1); +} + +function wrapCommand(fn) { + return (...args) => + fn(...args).catch(err => { + console.error(chalk.red(err.stack)); + process.exitCode = 1; + }); +} + +program + .version(require('../package.json').version) + .usage(' [options]'); + +program + .command('dev [targetDir]') + .description('start development server') + .option('-p, --port ', 'use specified port (default: 8080)') + .action((dir = '.', {port}) => { + wrapCommand(dev)(path.resolve(dir), {port}); + }); + +program + .command('build [targetDir]') + .description('build dir as static site') + .option( + '-d, --dest ', + 'specify build output dir (default: .blogi/dist)' + ) + .action((dir = '.', {dest}) => { + const outDir = dest ? path.resolve(dest) : null; + wrapCommand(build)(path.resolve(dir), {outDir}); + }); + +program.parse(process.argv); + +if (!process.argv.slice(2).length) { + program.outputHelp(); +} diff --git a/lib/build.js b/lib/commands/build.js similarity index 100% rename from lib/build.js rename to lib/commands/build.js diff --git a/lib/dev.js b/lib/commands/dev.js similarity index 92% rename from lib/dev.js rename to lib/commands/dev.js index e3fd9f4d5d..dd3b0ec62e 100644 --- a/lib/dev.js +++ b/lib/commands/dev.js @@ -13,8 +13,8 @@ const serve = require('webpack-serve'); const serveWaitpage = require('webpack-serve-waitpage'); const webpackNiceLog = require('webpack-nicelog'); const HtmlWebpackPlugin = require('html-webpack-plugin'); -const load = require('./loader'); -const createDevConfig = require('./webpack/dev'); +const load = require('../loader'); +const createDevConfig = require('../webpack/dev'); async function getPort(port) { portfinder.basePort = parseInt(port, 10) || 8080; @@ -61,7 +61,7 @@ module.exports = async function dev(sourceDir, cliOptions = {}) { { inject: false, hash: true, - template: path.resolve(__dirname, 'core/index.html'), + template: path.resolve(__dirname, '../core/index.html'), filename: 'index.html' } ]); diff --git a/lib/core/index.js b/lib/core/devEntry.js similarity index 97% rename from lib/core/index.js rename to lib/core/devEntry.js index 548beeb1d6..8fb024c577 100644 --- a/lib/core/index.js +++ b/lib/core/devEntry.js @@ -19,7 +19,7 @@ class App extends React.Component {
{path}
- ))} + ))} diff --git a/lib/index.js b/lib/index.js index 689d88721c..025145a775 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,2 +1,7 @@ -exports.dev = require('./dev'); -exports.build = require('./build'); +const dev = require('./commands/dev'); +const build = require('./commands/build'); + +module.exports = { + dev, + build +}; diff --git a/lib/loader/index.js b/lib/loader/index.js index 90354de39d..f6e69ab56a 100644 --- a/lib/loader/index.js +++ b/lib/loader/index.js @@ -25,12 +25,12 @@ module.exports = async function load(sourceDir) { ? path.resolve(siteConfig.dest) : path.resolve(sourceDir, '.blogi/dist'); - // resolve the path of our app theme/ layout - const themePath = - !siteConfig.themePath || - !fs.existsSync(path.resolve(sourceDir, siteConfig.themePath)) - ? path.resolve(__dirname, '../theme') - : siteConfig.themePath; + // resolve the path of our app user interface layout + const uiPath = + !siteConfig.uiPath || + !fs.existsSync(path.resolve(sourceDir, siteConfig.uiPath)) + ? path.resolve(__dirname, '../ui') + : siteConfig.uiPath; const publicPath = siteConfig.base || '/'; @@ -39,7 +39,7 @@ module.exports = async function load(sourceDir) { blogDatas, sourceDir, outDir, - themePath, + uiPath, publicPath }; }; diff --git a/lib/theme/hello.js b/lib/ui/hello.js similarity index 100% rename from lib/theme/hello.js rename to lib/ui/hello.js diff --git a/lib/theme/layout.js b/lib/ui/layout.js similarity index 100% rename from lib/theme/layout.js rename to lib/ui/layout.js diff --git a/lib/webpack/base.js b/lib/webpack/base.js index 069a6de38f..4bd05e16e3 100644 --- a/lib/webpack/base.js +++ b/lib/webpack/base.js @@ -2,7 +2,7 @@ const Config = require('webpack-chain'); const path = require('path'); module.exports = function createBaseConfig(props) { - const {outDir, themePath, sourceDir, publicPath} = props; + const {outDir, uiPath, sourceDir, publicPath} = props; const config = new Config(); const isProd = process.env.NODE_ENV === 'production'; @@ -17,7 +17,7 @@ module.exports = function createBaseConfig(props) { config.resolve .set('symlinks', true) - .alias.set('@theme', themePath) + .alias.set('@ui', uiPath) .set('@source', sourceDir) .set('@generated', path.resolve(__dirname, '../generated')) .set('@core', path.resolve(__dirname, '../core')) diff --git a/lib/webpack/dev.js b/lib/webpack/dev.js index 8a2e5cd182..58613caf85 100644 --- a/lib/webpack/dev.js +++ b/lib/webpack/dev.js @@ -4,7 +4,7 @@ const createBaseConfig = require('./base'); module.exports = function createDevConfig(props) { const config = createBaseConfig(props); - config.entry('main').add(path.resolve(__dirname, '../core/index.js')); + config.entry('main').add(path.resolve(__dirname, '../core/devEntry.js')); return config; };