From 8f974a3ac79dc8a00fbb7563bd604c63b4886632 Mon Sep 17 00:00:00 2001 From: NGPixel Date: Sat, 13 May 2017 17:03:32 -0400 Subject: [PATCH] chore: Updated fusebox scripts --- fuse.js | 218 +++++++++++-------------------- package.json | 1 + server/agent.js | 12 +- server/views/auth/login.pug | 3 +- server/views/error-forbidden.pug | 3 +- server/views/error-notexist.pug | 3 +- server/views/error.pug | 3 +- server/views/layout.pug | 3 +- 8 files changed, 90 insertions(+), 156 deletions(-) diff --git a/fuse.js b/fuse.js index 908b9679..956d2e51 100644 --- a/fuse.js +++ b/fuse.js @@ -30,17 +30,12 @@ const args = require('yargs') describe: 'Start in Configure Developer mode', type: 'boolean' }) - .option('i', { - alias: 'inspect', - describe: 'Enable Inspector for debugging', - type: 'boolean', - implies: 'd' - }) .help('h') .alias('h', 'help') .argv let mode = 'build' +const dev = args.d || args.c if (args.d) { console.info(colors.bgWhite.black(' Starting Fuse in DEVELOPER mode... ')) mode = 'dev' @@ -51,31 +46,6 @@ if (args.d) { console.info(colors.bgWhite.black(' Starting Fuse in BUILD mode... ')) } -// ====================================================== -// Define aliases / shims -// ====================================================== - -const ALIASES = { - 'brace-ext-modelist': 'brace/ext/modelist.js', - 'simplemde': 'simplemde/dist/simplemde.min.js', - 'socket.io-client': 'socket.io-client/dist/socket.io.min.js', - 'vue': 'vue/dist/vue.min.js' -} -const SHIMS = { - _preinit: { - source: '.build/_preinit.js', - exports: '_preinit' - }, - jquery: { - source: 'node_modules/jquery/dist/jquery.js', - exports: '$' - }, - mathjax: { - source: 'node_modules/mathjax/MathJax.js', - exports: 'MathJax' - } -} - // ====================================================== // Global Tasks // ====================================================== @@ -169,6 +139,12 @@ let globalTasks = Promise.mapSeries([ }).then(() => { return fs.outputFileAsync('./.build/_preinit.js', preInitContent, 'utf8') }) + }, + /** + * Delete Fusebox cache + */ + () => { + return fs.emptyDirAsync('./.fusebox') } ], f => { return f() }) @@ -176,129 +152,83 @@ let globalTasks = Promise.mapSeries([ // Fuse Tasks // ====================================================== -let fuse +const ALIASES = { + 'brace-ext-modelist': 'brace/ext/modelist.js', + 'simplemde': 'simplemde/dist/simplemde.min.js', + 'socket.io-client': 'socket.io-client/dist/socket.io.js', + 'vue': 'vue/dist/vue.min.js' +} +const SHIMS = { + _preinit: { + source: '.build/_preinit.js', + exports: '_preinit' + }, + jquery: { + source: 'node_modules/jquery/dist/jquery.js', + exports: '$' + }, + mathjax: { + source: 'node_modules/mathjax/MathJax.js', + exports: 'MathJax' + } +} globalTasks.then(() => { - switch (mode) { - // ============================================= - // DEVELOPER MODE - // ============================================= - case 'dev': - // Client - - fuse = fsbx.FuseBox.init({ - homeDir: './client', - output: './assets/js/$name.min.js', - alias: ALIASES, - shim: SHIMS, - plugins: [ - fsbx.VuePlugin(), - [ '.scss', fsbx.SassPlugin(), fsbx.CSSPlugin() ], - fsbx.BabelPlugin({ comments: false, presets: ['es2015'] }), - fsbx.JSONPlugin() - ], - debug: false, - log: true - }) - - fuse.dev({ - port: 4444, - httpServer: false + let fuse = fsbx.FuseBox.init({ + homeDir: './client', + output: './assets/js/$name.min.js', + alias: ALIASES, + shim: SHIMS, + plugins: [ + fsbx.EnvPlugin({ NODE_ENV: (dev) ? 'development' : 'production' }), + fsbx.VuePlugin(), + [ '.scss', fsbx.SassPlugin({ outputStyle: (dev) ? 'nested' : 'compressed' }), fsbx.CSSPlugin() ], + fsbx.BabelPlugin({ comments: false, presets: ['es2015'] }), + fsbx.JSONPlugin(), + !dev && fsbx.UglifyJSPlugin({ + compress: { unused: false }, + output: { 'max_line_len': 1000000 } }) + ], + debug: false, + log: true + }) - fuse.bundle('bundle') - .instructions('> index.js') - .watch() + if (dev) { + fuse.dev({ + port: 4444, + httpServer: false + }) + } - fuse.run().then(() => { - nodemon({ - exec: (args.i) ? 'node --inspect server' : 'node server', - ignore: ['assets/', 'client/', 'data/', 'repo/', 'tests/'], - ext: 'js json', - watch: ['server'], - env: { 'NODE_ENV': 'development' } - }) - }) + const bundleLibs = fuse.bundle('libs').instructions('~ index.js') + const bundleApp = fuse.bundle('app').instructions('!> index.js') + const bundleSetup = fuse.bundle('configure').instructions('> configure.js') + switch (mode) { + case 'dev': + bundleLibs.watch() + bundleApp.watch() break - // ============================================= - // CONFIGURE - DEVELOPER MODE - // ============================================= case 'dev-configure': - // Client - - fuse = fsbx.FuseBox.init({ - homeDir: './client', - output: './assets/js/$name.min.js', - alias: ALIASES, - shim: SHIMS, - plugins: [ - [ '.scss', fsbx.SassPlugin(), fsbx.CSSPlugin() ], - fsbx.BabelPlugin({ comments: false, presets: ['es2015'] }), - fsbx.JSONPlugin() - ], - debug: false, - log: true - }) - - fuse.dev({ - port: 4444, - httpServer: false - }) - - fuse.bundle('configure') - .instructions('> configure.js') - .watch() - - fuse.run().then(() => { - nodemon({ - exec: 'node wiki configure', - ignore: ['assets/', 'client/', 'data/', 'repo/', 'tests/'], - ext: 'js json', - watch: ['server/configure.js'], - env: { 'NODE_ENV': 'development' } - }) - }) - + bundleSetup.watch() break - // ============================================= - // BUILD ONLY MODE - // ============================================= - case 'build': - fuse = fsbx.FuseBox.init({ - homeDir: './client', - output: './assets/js/$name.min.js', - alias: ALIASES, - shim: SHIMS, - plugins: [ - fsbx.EnvPlugin({ NODE_ENV: 'production' }), - fsbx.VuePlugin(), - [ '.scss', fsbx.SassPlugin({ outputStyle: 'compressed' }), fsbx.CSSPlugin() ], - fsbx.BabelPlugin({ - config: { - comments: false, - presets: ['es2015'] - } - }), - fsbx.JSONPlugin(), - fsbx.UglifyJSPlugin({ - compress: { unused: false }, - output: { 'max_line_len': 1000000 } - }) - ], - debug: false, - log: true - }) + } - fuse.bundle('bundle').instructions('> index.js') - fuse.bundle('configure').instructions('> configure.js') + fuse.run().then(() => { + console.info(colors.green.bold('\nAssets compilation + bundling completed.')) - fuse.run().then(() => { - console.info(colors.green.bold('\nAssets compilation + bundling completed.')) - }).catch(err => { - console.error(colors.red(' X Bundle compilation failed! ' + err.message)) - process.exit(1) + if (dev) { + nodemon({ + exec: (args.d) ? 'node server' : 'node wiki configure', + ignore: ['assets/', 'client/', 'data/', 'repo/', 'tests/'], + ext: 'js json', + watch: (args.d) ? ['server'] : ['server/configure.js'], + env: { 'NODE_ENV': 'development' } }) - break - } + } + }).catch(err => { + console.error(colors.red(' X Bundle compilation failed! ' + err.message)) + process.exit(1) + }) }) diff --git a/package.json b/package.json index 9cf6d7cb..87609554 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "scripts": { "start": "node wiki start", "stop": "node wiki stop", + "restart": "node wiki restart", "build": "node fuse", "dev": "node fuse -d", "dev-configure": "node fuse -c", diff --git a/server/agent.js b/server/agent.js index 2639e59b..38efd466 100644 --- a/server/agent.js +++ b/server/agent.js @@ -44,8 +44,7 @@ const Promise = require('bluebird') const fs = Promise.promisifyAll(require('fs-extra')) const klaw = require('klaw') const Cron = require('cron').CronJob -const i18nextBackend = require('i18next-node-fs-backend') -const i18nextMw = require('i18next-express-middleware') +const i18nBackend = require('i18next-node-fs-backend') const entryHelper = require('./helpers/entry') @@ -54,15 +53,14 @@ const entryHelper = require('./helpers/entry') // ---------------------------------------- global.lang - .use(i18nextBackend) - .use(i18nextMw.LanguageDetector) + .use(i18nBackend) .init({ load: 'languageOnly', - ns: ['common', 'errors', 'git'], + ns: ['common', 'admin', 'auth', 'errors', 'git'], defaultNS: 'common', saveMissing: false, - supportedLngs: ['en', 'fr'], - preload: ['en', 'fr'], + preload: [appconfig.lang], + lng: appconfig.lang, fallbackLng: 'en', backend: { loadPath: path.join(SERVERPATH, 'locales/{{lng}}/{{ns}}.json') diff --git a/server/views/auth/login.pug b/server/views/auth/login.pug index 81b97ffb..c5c7e489 100644 --- a/server/views/auth/login.pug +++ b/server/views/auth/login.pug @@ -18,7 +18,8 @@ html(data-logic='login') link(rel='manifest', href='/manifest.json') // JS / CSS - script(type='text/javascript', src='/js/bundle.min.js') + script(type='text/javascript', src='/js/libs.min.js') + script(type='text/javascript', src='/js/app.min.js') body #bg diff --git a/server/views/error-forbidden.pug b/server/views/error-forbidden.pug index 5ed182b9..3b684419 100644 --- a/server/views/error-forbidden.pug +++ b/server/views/error-forbidden.pug @@ -18,7 +18,8 @@ html(data-logic='error') link(rel='manifest', href='/manifest.json') // JS / CSS - script(type='text/javascript', src='/js/bundle.min.js') + script(type='text/javascript', src='/js/libs.min.js') + script(type='text/javascript', src='/js/app.min.js') body(class='is-forbidden') .container diff --git a/server/views/error-notexist.pug b/server/views/error-notexist.pug index 27b6997f..0041edc9 100644 --- a/server/views/error-notexist.pug +++ b/server/views/error-notexist.pug @@ -18,7 +18,8 @@ html(data-logic='error') link(rel='manifest', href='/manifest.json') // JS / CSS - script(type='text/javascript', src='/js/bundle.min.js') + script(type='text/javascript', src='/js/libs.min.js') + script(type='text/javascript', src='/js/app.min.js') body(class='is-notexist') .container diff --git a/server/views/error.pug b/server/views/error.pug index 6cb30909..aa82e470 100644 --- a/server/views/error.pug +++ b/server/views/error.pug @@ -18,7 +18,8 @@ html(data-logic='error') link(rel='manifest', href='/manifest.json') // JS / CSS - script(type='text/javascript', src='/js/bundle.min.js') + script(type='text/javascript', src='/js/libs.min.js') + script(type='text/javascript', src='/js/app.min.js') body(class='is-error') .container diff --git a/server/views/layout.pug b/server/views/layout.pug index 0e08a9a8..c1e5a970 100644 --- a/server/views/layout.pug +++ b/server/views/layout.pug @@ -18,7 +18,8 @@ html link(rel='manifest', href='/manifest.json') // JS / CSS - script(type='text/javascript', src='/js/bundle.min.js') + script(type='text/javascript', src='/js/libs.min.js') + script(type='text/javascript', src='/js/app.min.js') block head