UNPKG

react-hackathon-board

Version:
139 lines (120 loc) 3.77 kB
/* eslint key-spacing:0 spaced-comment:0 */ import _debug from 'debug'; import path from 'path'; import { argv } from 'yargs'; const debug = _debug('app:config:_base'); // For Heroku deployment const heroku_host = null; //'react-hackathon.herokuapp.com'; const heroku_port = null; //8080; const config = { env : process.env.NODE_ENV || 'development', // ---------------------------------- // Project Structure // ---------------------------------- path_base : path.resolve(__dirname, '..'), dir_client : 'src', dir_dist : 'dist', dir_server : 'server', dir_test : 'tests', // ---------------------------------- // Server Configuration // ---------------------------------- server_host : heroku_host || 'localhost', server_port : heroku_port || 3000, // DB configuration db: process.env.MONGODB_URI || 'mongodb://localhost:27017/hackathon-scratch', // ---------------------------------- // 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_vendor : [ 'axios', 'babel-polyfill', 'history', 'jquery', 'moment', 'react', 'react-burger-menu', 'react-datepicker', 'react-dom', 'react-dropzone-component', 'react-markdown', 'react-redux', 'react-redux-form', 'react-router', 'react-router-redux', 'react-semantify', 'react-syntax-highlighter', 'redux', 'redux-actions', 'redux-thunk', 're-notif' ], // ---------------------------------- // Test Configuration // ---------------------------------- coverage_enabled : !argv.watch, coverage_reporters : [ { type : 'text-summary' }, { type : 'lcov', dir : 'coverage' } ] }; /************************************************ ------------------------------------------------- All Internal Configuration Below Edit at Your Own Risk ------------------------------------------------- ************************************************/ // ------------------------------------ // Environment // ------------------------------------ // N.B.: globals added here must _also_ be added to .eslintrc config.globals = { '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, '__DEBUG_NEW_WINDOW__' : !!argv.nw, '__BASENAME__' : JSON.stringify(process.env.BASENAME || '') }; // ------------------------------------ // Validate Vendor Dependencies // ------------------------------------ const pkg = require('../package.json'); 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; ` + `it won't be included in the webpack vendor bundle. Consider removing it from vendor_dependencies in ~/config/index.js` ); }); // ------------------------------------ // Utilities // ------------------------------------ config.utils_paths = (() => { const resolve = path.resolve; const base = (...args) => resolve.apply(resolve, [config.path_base, ...args]); return { base : base, client : base.bind(null, config.dir_client), dist : base.bind(null, config.dir_dist) }; })(); export default config;