|
|
|
|
@ -1,66 +1,66 @@
|
|
|
|
|
/* eslint key-spacing:0 spaced-comment:0 */
|
|
|
|
|
import path from 'path'
|
|
|
|
|
import _debug from 'debug'
|
|
|
|
|
import { argv } from 'yargs'
|
|
|
|
|
import ip from 'ip'
|
|
|
|
|
import path from "path";
|
|
|
|
|
import _debug from "debug";
|
|
|
|
|
import { argv } from "yargs";
|
|
|
|
|
import ip from "ip";
|
|
|
|
|
|
|
|
|
|
const localip = ip.address()
|
|
|
|
|
const debug = _debug('app:config')
|
|
|
|
|
debug('Creating default configuration.')
|
|
|
|
|
const localip = ip.address();
|
|
|
|
|
const debug = _debug("app:config");
|
|
|
|
|
debug("Creating default configuration.");
|
|
|
|
|
|
|
|
|
|
// ========================================================
|
|
|
|
|
// Default Configuration
|
|
|
|
|
// ========================================================
|
|
|
|
|
const config = {
|
|
|
|
|
env : process.env.NODE_ENV || 'development',
|
|
|
|
|
env: process.env.NODE_ENV || "production",
|
|
|
|
|
|
|
|
|
|
// ----------------------------------
|
|
|
|
|
// Project Structure
|
|
|
|
|
// ----------------------------------
|
|
|
|
|
path_base : path.resolve(__dirname, '..'),
|
|
|
|
|
dir_client : 'src',
|
|
|
|
|
dir_dist : 'dist',
|
|
|
|
|
dir_server : 'server',
|
|
|
|
|
dir_test : 'tests',
|
|
|
|
|
path_base: path.resolve(__dirname, ".."),
|
|
|
|
|
dir_client: "src",
|
|
|
|
|
dir_dist: "dist",
|
|
|
|
|
dir_server: "server",
|
|
|
|
|
dir_test: "tests",
|
|
|
|
|
|
|
|
|
|
// ----------------------------------
|
|
|
|
|
// Server Configuration
|
|
|
|
|
// ----------------------------------
|
|
|
|
|
server_host : process.env.FRONTEND_HOST || localip, // use string 'localhost' to prevent exposure on local network
|
|
|
|
|
server_port : process.env.PORT || 3000,
|
|
|
|
|
server_host: process.env.FRONTEND_HOST || localip, // use string 'localhost' to prevent exposure on local network
|
|
|
|
|
server_port: process.env.PORT || 3000,
|
|
|
|
|
|
|
|
|
|
// ----------------------------------
|
|
|
|
|
// Compiler Configuration
|
|
|
|
|
// ----------------------------------
|
|
|
|
|
compiler_css_modules : true,
|
|
|
|
|
compiler_devtool : 'source-map',
|
|
|
|
|
compiler_hash_type : 'hash',
|
|
|
|
|
compiler_fail_on_warning : false,
|
|
|
|
|
compiler_quiet : false,
|
|
|
|
|
compiler_public_path : '/',
|
|
|
|
|
compiler_stats : {
|
|
|
|
|
chunks : false,
|
|
|
|
|
chunkModules : false,
|
|
|
|
|
colors : true
|
|
|
|
|
compiler_css_modules: true,
|
|
|
|
|
compiler_devtool: "source-map",
|
|
|
|
|
compiler_hash_type: "hash",
|
|
|
|
|
compiler_fail_on_warning: false,
|
|
|
|
|
compiler_quiet: false,
|
|
|
|
|
compiler_public_path: "/",
|
|
|
|
|
compiler_stats: {
|
|
|
|
|
chunks: false,
|
|
|
|
|
chunkModules: false,
|
|
|
|
|
colors: true,
|
|
|
|
|
},
|
|
|
|
|
compiler_vendor : [
|
|
|
|
|
'babel-polyfill',
|
|
|
|
|
'history',
|
|
|
|
|
'react',
|
|
|
|
|
'react-redux',
|
|
|
|
|
'react-router',
|
|
|
|
|
'react-router-redux',
|
|
|
|
|
'redux'
|
|
|
|
|
compiler_vendor: [
|
|
|
|
|
"babel-polyfill",
|
|
|
|
|
"history",
|
|
|
|
|
"react",
|
|
|
|
|
"react-redux",
|
|
|
|
|
"react-router",
|
|
|
|
|
"react-router-redux",
|
|
|
|
|
"redux",
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
// ----------------------------------
|
|
|
|
|
// Test Configuration
|
|
|
|
|
// ----------------------------------
|
|
|
|
|
coverage_reporters : [
|
|
|
|
|
{ type : 'text-summary' },
|
|
|
|
|
{ type : 'lcov', dir : 'coverage' }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
coverage_reporters: [
|
|
|
|
|
{ type: "text-summary" },
|
|
|
|
|
{ type: "lcov", dir: "coverage" },
|
|
|
|
|
],
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/************************************************
|
|
|
|
|
-------------------------------------------------
|
|
|
|
|
@ -76,58 +76,57 @@ Edit at Your Own Risk
|
|
|
|
|
// ------------------------------------
|
|
|
|
|
// N.B.: globals added here must _also_ be added to .eslintrc
|
|
|
|
|
config.globals = {
|
|
|
|
|
'process.env' : {
|
|
|
|
|
'NODE_ENV' : JSON.stringify(config.env)
|
|
|
|
|
"process.env": {
|
|
|
|
|
NODE_ENV: JSON.stringify(config.env),
|
|
|
|
|
},
|
|
|
|
|
'NODE_ENV' : config.env,
|
|
|
|
|
'__DEV__' : config.env === 'development',
|
|
|
|
|
'__PROD__' : config.env === 'production',
|
|
|
|
|
'__TEST__' : config.env === 'test',
|
|
|
|
|
'__DEBUG__' : config.env === 'development' && !argv.no_debug,
|
|
|
|
|
'__COVERAGE__' : !argv.watch && config.env === 'test',
|
|
|
|
|
'__BASENAME__' : JSON.stringify(process.env.BASENAME || '')
|
|
|
|
|
}
|
|
|
|
|
NODE_ENV: config.env,
|
|
|
|
|
__DEV__: config.env === "development",
|
|
|
|
|
__PROD__: config.env === "production",
|
|
|
|
|
__TEST__: config.env === "test",
|
|
|
|
|
__DEBUG__: config.env === "development" && !argv.no_debug,
|
|
|
|
|
__COVERAGE__: !argv.watch && config.env === "test",
|
|
|
|
|
__BASENAME__: JSON.stringify(process.env.BASENAME || ""),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// ------------------------------------
|
|
|
|
|
// Validate Vendor Dependencies
|
|
|
|
|
// ------------------------------------
|
|
|
|
|
const pkg = require('../package.json')
|
|
|
|
|
const pkg = require("../package.json");
|
|
|
|
|
|
|
|
|
|
config.compiler_vendor = config.compiler_vendor
|
|
|
|
|
.filter((dep) => {
|
|
|
|
|
if (pkg.dependencies[dep]) return true
|
|
|
|
|
config.compiler_vendor = config.compiler_vendor.filter((dep) => {
|
|
|
|
|
if (pkg.dependencies[dep]) return true;
|
|
|
|
|
|
|
|
|
|
debug(
|
|
|
|
|
`Package "${dep}" was not found as an npm dependency in package.json; ` +
|
|
|
|
|
debug(
|
|
|
|
|
`Package "${dep}" was not found as an npm dependency in package.json; ` +
|
|
|
|
|
`it won't be included in the webpack vendor bundle.
|
|
|
|
|
Consider removing it from vendor_dependencies in ~/config/index.js`
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// ------------------------------------
|
|
|
|
|
// Utilities
|
|
|
|
|
// ------------------------------------
|
|
|
|
|
const resolve = path.resolve
|
|
|
|
|
const resolve = path.resolve;
|
|
|
|
|
const base = (...args) =>
|
|
|
|
|
Reflect.apply(resolve, null, [config.path_base, ...args])
|
|
|
|
|
Reflect.apply(resolve, null, [config.path_base, ...args]);
|
|
|
|
|
|
|
|
|
|
config.utils_paths = {
|
|
|
|
|
base : base,
|
|
|
|
|
client : base.bind(null, config.dir_client),
|
|
|
|
|
dist : base.bind(null, config.dir_dist)
|
|
|
|
|
}
|
|
|
|
|
base: base,
|
|
|
|
|
client: base.bind(null, config.dir_client),
|
|
|
|
|
dist: base.bind(null, config.dir_dist),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// ========================================================
|
|
|
|
|
// Environment Configuration
|
|
|
|
|
// ========================================================
|
|
|
|
|
debug(`Looking for environment overrides for NODE_ENV "${config.env}".`)
|
|
|
|
|
const environments = require('./environments').default
|
|
|
|
|
const overrides = environments[config.env]
|
|
|
|
|
debug(`Looking for environment overrides for NODE_ENV "${config.env}".`);
|
|
|
|
|
const environments = require("./environments").default;
|
|
|
|
|
const overrides = environments[config.env];
|
|
|
|
|
if (overrides) {
|
|
|
|
|
debug('Found overrides, applying to default configuration.')
|
|
|
|
|
Object.assign(config, overrides(config))
|
|
|
|
|
debug("Found overrides, applying to default configuration.");
|
|
|
|
|
Object.assign(config, overrides(config));
|
|
|
|
|
} else {
|
|
|
|
|
debug('No environment overrides found, defaults will be used.')
|
|
|
|
|
debug("No environment overrides found, defaults will be used.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default config
|
|
|
|
|
export default config;
|
|
|
|
|
|