initial commit

This commit is contained in:
Colin Megill
2017-08-23 16:28:01 -07:00
commit f6d7cc3e23
40 changed files with 1661 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
/* eslint-disable */
var path = require('path');
var historyApiFallback = require('connect-history-api-fallback');
var chalk = require('chalk');
var express = require('express');
var favicon = require('serve-favicon');
var webpack = require('webpack');
var config = require('../configuration/webpack/webpack.config.dev');
var utils = require('./utils');
process.env.NODE_ENV = 'development';
var PORT = process.env.PORT || 3000;
// Set up compiler
var compiler = webpack(config);
compiler.plugin('invalid', () => {
utils.clearConsole();
console.log('Compiling...');
});
compiler.plugin('done', stats => {
utils.formatStats(stats, PORT);
});
// Launch server
var app = express();
app.use(historyApiFallback({ verbose: false }));
app.use(
require('webpack-dev-middleware')(compiler, {
noInfo: true,
publicPath: config.output.publicPath
})
);
app.use(require('webpack-hot-middleware')(compiler));
app.use(favicon('./favicon.png'));
app.get('*', (req, res) => {
res.sendFile(path.resolve('index.html'));
});
app.listen(PORT, err => {
if (err) {
console.log(err);
return;
}
utils.clearConsole();
console.log(chalk.cyan('Starting the development server...'));
console.log();
});
+31
View File
@@ -0,0 +1,31 @@
/* eslint-disable */
var path = require('path');
var fs = require('fs');
var chalk = require('chalk');
var express = require('express');
var favicon = require('serve-favicon');
var utils = require('./utils');
var PORT = process.env.PORT || 80;
// Launch server
var app = express();
app.use(express.static('./build'));
app.use(favicon('./build/favicon.png'));
app.get('*', (req, res) => {
res.sendFile(path.resolve('./build/index.html'));
});
app.listen(PORT, err => {
if (err) {
console.log(err);
return;
}
utils.clearConsole();
console.log(chalk.cyan('Production server started on port ' + PORT));
console.log();
});
+79
View File
@@ -0,0 +1,79 @@
/* eslint-disable */
var chalk = require('chalk');
var friendlySyntaxErrorLabel = 'Syntax error:';
function isLikelyASyntaxError(message) {
return message.indexOf(friendlySyntaxErrorLabel) !== -1;
}
function formatMessage(message) {
return message
.replace('Module build failed: SyntaxError:', friendlySyntaxErrorLabel)
.replace(
/Module not found: Error: Cannot resolve 'file' or 'directory'/,
'Module not found:'
)
.replace(/^\s*at\s.*:\d+:\d+[\s\)]*\n/gm, '')
.replace('./~/css-loader!./~/postcss-loader!', '');
}
var clearConsole = () => {
process.stdout.write('\x1bc');
};
var formatStats = (stats, port) => {
clearConsole();
var hasErrors = stats.hasErrors();
var hasWarnings = stats.hasWarnings();
if (!hasErrors && !hasWarnings) {
console.log(chalk.green('Compiled successfully!'));
console.log();
console.log('The app is running at http://localhost:' + port + '/');
console.log();
return;
}
var json = stats.toJson();
var formattedErrors = json.errors.map(
message => 'Error in ' + formatMessage(message)
);
var formattedWarnings = json.warnings.map(
message => 'Warning in ' + formatMessage(message)
);
if (hasErrors) {
console.log(chalk.red('Failed to compile.'));
console.log();
if (formattedErrors.some(isLikelyASyntaxError)) {
formattedErrors = formattedErrors.filter(isLikelyASyntaxError);
}
formattedErrors.forEach(message => {
console.log(message);
console.log();
});
return;
}
if (hasWarnings) {
console.log(chalk.yellow('Compiled with warnings.'));
console.log();
formattedWarnings.forEach(message => {
console.log(message);
console.log();
});
console.log('You may use special comments to disable some warnings.');
console.log(
'Use ' +
chalk.yellow('// eslint-disable-next-line') +
' to ignore the next line.'
);
console.log(
'Use ' +
chalk.yellow('/* eslint-disable */') +
' to ignore all warnings in a file.'
);
}
};
module.exports = { formatStats: formatStats, clearConsole: clearConsole };