| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | 
							- #!/usr/bin/env node
 
- // ===========================================
 
- // Wiki.js DEV UTILITY
 
- // Licensed under AGPLv3
 
- // ===========================================
 
- const _ = require('lodash')
 
- const chalk = require('chalk')
 
- const init = {
 
-   dev() {
 
-     const webpack = require('webpack')
 
-     const chokidar = require('chokidar')
 
-     console.info(chalk.yellow.bold('--- ====================== ---'))
 
-     console.info(chalk.yellow.bold('--- Wiki.js DEVELOPER MODE ---'))
 
-     console.info(chalk.yellow.bold('--- ====================== ---'))
 
-     global.DEV = true
 
-     global.WP_CONFIG = require('./webpack/webpack.dev.js')
 
-     global.WP = webpack(global.WP_CONFIG)
 
-     global.WP_DEV = {
 
-       devMiddleware: require('webpack-dev-middleware')(global.WP, {
 
-         publicPath: global.WP_CONFIG.output.publicPath
 
-       }),
 
-       hotMiddleware: require('webpack-hot-middleware')(global.WP)
 
-     }
 
-     global.WP_DEV.devMiddleware.waitUntilValid(() => {
 
-       console.info(chalk.yellow.bold('>>> Starting Wiki.js in DEVELOPER mode...'))
 
-       require('../server')
 
-       process.stdin.setEncoding('utf8')
 
-       process.stdin.on('data', data => {
 
-         if (_.trim(data) === 'rs') {
 
-           console.warn(chalk.yellow.bold('--- >>>>>>>>>>>>>>>>>>>>>>>> ---'))
 
-           console.warn(chalk.yellow.bold('--- Manual restart requested ---'))
 
-           console.warn(chalk.yellow.bold('--- <<<<<<<<<<<<<<<<<<<<<<<< ---'))
 
-           this.reload()
 
-         }
 
-       })
 
-       const devWatcher = chokidar.watch([
 
-         './server',
 
-         '!./server/views/master.pug'
 
-       ], {
 
-         cwd: process.cwd(),
 
-         ignoreInitial: true,
 
-         atomic: 400
 
-       })
 
-       devWatcher.on('ready', () => {
 
-         devWatcher.on('all', _.debounce(() => {
 
-           console.warn(chalk.yellow.bold('--- >>>>>>>>>>>>>>>>>>>>>>>>>>>> ---'))
 
-           console.warn(chalk.yellow.bold('--- Changes detected: Restarting ---'))
 
-           console.warn(chalk.yellow.bold('--- <<<<<<<<<<<<<<<<<<<<<<<<<<<< ---'))
 
-           this.reload()
 
-         }, 500))
 
-       })
 
-     })
 
-   },
 
-   async reload() {
 
-     console.warn(chalk.yellow('--- Gracefully stopping server...'))
 
-     await global.WIKI.kernel.shutdown()
 
-     console.warn(chalk.yellow('--- Purging node modules cache...'))
 
-     global.WIKI = {}
 
-     Object.keys(require.cache).forEach(id => {
 
-       if (/[/\\]server[/\\]/.test(id)) {
 
-         delete require.cache[id]
 
-       }
 
-     })
 
-     Object.keys(module.constructor._pathCache).forEach(cacheKey => {
 
-       if (/[/\\]server[/\\]/.test(cacheKey)) {
 
-         delete module.constructor._pathCache[cacheKey]
 
-       }
 
-     })
 
-     console.warn(chalk.yellow('--- Unregistering process listeners...'))
 
-     process.removeAllListeners('unhandledRejection')
 
-     process.removeAllListeners('uncaughtException')
 
-     require('../server')
 
-   }
 
- }
 
- init.dev()
 
 
  |