chore: Updated fusebox scripts
This commit is contained in:
parent
9e801548e0
commit
8f974a3ac7
226
fuse.js
226
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(() => {
|
||||
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
|
||||
})
|
||||
|
||||
if (dev) {
|
||||
fuse.dev({
|
||||
port: 4444,
|
||||
httpServer: false
|
||||
})
|
||||
}
|
||||
|
||||
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) {
|
||||
// =============================================
|
||||
// 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
|
||||
})
|
||||
|
||||
fuse.bundle('bundle')
|
||||
.instructions('> index.js')
|
||||
.watch()
|
||||
|
||||
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' }
|
||||
})
|
||||
})
|
||||
|
||||
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' }
|
||||
})
|
||||
})
|
||||
|
||||
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.'))
|
||||
}).catch(err => {
|
||||
console.error(colors.red(' X Bundle compilation failed! ' + err.message))
|
||||
process.exit(1)
|
||||
})
|
||||
bundleSetup.watch()
|
||||
break
|
||||
}
|
||||
|
||||
fuse.run().then(() => {
|
||||
console.info(colors.green.bold('\nAssets compilation + bundling completed.'))
|
||||
|
||||
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' }
|
||||
})
|
||||
}
|
||||
}).catch(err => {
|
||||
console.error(colors.red(' X Bundle compilation failed! ' + err.message))
|
||||
process.exit(1)
|
||||
})
|
||||
})
|
||||
|
@ -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",
|
||||
|
@ -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')
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user