diff --git a/bin/nuxtent b/bin/nuxtent
deleted file mode 100755
index 9602a22..0000000
--- a/bin/nuxtent
+++ /dev/null
@@ -1,26 +0,0 @@
-#! /usr/bin/env node
-
-const { join } = require('path')
-
-const defaultCommand = 'generate'
-const commands = new Set([
- defaultCommand
-])
-
-var cmd = process.argv[2]
-
-if (commands.has(cmd)) {
- process.argv.splice(2, 1)
-} else {
- cmd = defaultCommand
-}
-
-const bin = join(__dirname, 'nuxtent-' + cmd)
-
-process.on('unhandledRejection', function (err) {
- /* eslint-disable no-console */
- console.error(err)
- console.error('[nuxt] Unhandled promise rejection: ' + err)
-})
-
-require(bin)
diff --git a/bin/nuxtent-generate b/bin/nuxtent-generate
deleted file mode 100644
index 2169fa1..0000000
--- a/bin/nuxtent-generate
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env node
-
-process.env.DEBUG = process.env.DEBUG || 'nuxt:*'
-process.env.STATIC = true
-
-const fs = require('fs')
-const parseArgs = require('minimist')
-const debug = require('debug')('nuxt:generate')
-
-const { Nuxt, Builder, Generator } = require('nuxt')
-const { resolve } = require('path')
-
-const argv = parseArgs(process.argv.slice(2), {
- alias: {
- h: 'help',
- c: 'config-file'
- },
- boolean: ['h'],
- string: ['c'],
- default: {
- c: 'nuxt.config.js'
- }
-})
-
-const port = argv.port || process.env.PORT || process.env.npm_package_config_nuxt_port
-const host = argv.hostname || process.env.HOST || process.env.npm_package_config_nuxt_host
-
-
-if (argv.help) {
- console.log(`
- Description
- Generate a static web application (server-rendered)
- Usage
- $ nuxt generate
- Options
- --config-file, -c Path to Nuxt.js config file (default: nuxt.config.js)
- --help, -h Displays this message
- `)
- process.exit(0)
-}
-
-const rootDir = resolve(argv._[0] || '.')
-const nuxtConfigFile = resolve(rootDir, argv['config-file'])
-
-var options = {}
-if (fs.existsSync(nuxtConfigFile)) {
- options = require(nuxtConfigFile)
-} else if (argv['config-file'] !== 'nuxt.config.js') {
- console.error(`> Could not load config file ${argv['config-file']}`)
- process.exit(1)
-}
-if (typeof options.rootDir !== 'string') {
- options.rootDir = rootDir
-}
-options.dev = false // Force production mode (no webpack middleware called)
-
-debug('Starting Nuxtent to generate content files...')
-const nuxt = new Nuxt(options)
-
-nuxt.listen(port, host).then(()=> {
- const generator = new Generator(nuxt, new Builder(nuxt))
- generator.generate()
- .then(() => {
- debug('Generate done')
- nuxt.close()
- process.exit(0)
- })
- .catch((err) => {
- console.error(err) // eslint-disable-line no-console
- nuxt.close()
- process.exit(1)
- })
-
-})
diff --git a/lib/module.js b/lib/module.js
index eea5100..d811725 100644
--- a/lib/module.js
+++ b/lib/module.js
@@ -1,5 +1,7 @@
import { resolve, join } from 'path'
+import express from 'express'
+
import pkg from '../package.json'
import createRouter from './content/api'
@@ -49,6 +51,7 @@ export default function ContentModule (moduleOpts) {
componentsDir: '/components',
buildDir: `/content`,
isStatic: userOptions.isStatic || process.env.STATIC || false,
+ port: process.env.PORT || process.env.npm_package_config_nuxt_port || 3000,
content: contentOptions(userOptions.content, {
page: null,
@@ -98,10 +101,23 @@ export default function ContentModule (moduleOpts) {
})
// 2. Add content API
+ const router = createRouter(options)
+ // Add API when running `nuxt` & `nuxt build` (development and production)
this.addServerMiddleware({
path: api.serverPrefix,
- handler: createRouter(options)
+ handler: router
+ })
+
+ // Add API when running `nuxt generate`
+ this.nuxt.plugin('generator', generator => {
+ const app = express()
+ app.use(api.serverPrefix, router)
+ const server = app.listen(options.port)
+
+ generator.plugin('generated', () => {
+ server.close()
+ })
})
// 3. Add request helpers
diff --git a/package.json b/package.json
index 5d47007..4052304 100644
--- a/package.json
+++ b/package.json
@@ -22,9 +22,6 @@
"Static"
],
"license": "MIT ",
- "bin": {
- "nuxtent": "bin/nuxtent"
- },
"scripts": {
"#": "handled by husky",
"precommit": "lint-staged",