diff options
author | Alex Tatiyants <atatiyan@gmail.com> | 2016-01-03 17:17:48 -0800 |
---|---|---|
committer | Alex Tatiyants <atatiyan@gmail.com> | 2016-01-03 17:17:48 -0800 |
commit | 5310ac7d8eb1838a6297117bc7f9fca70291f46a (patch) | |
tree | 28f54b184cb85f04e6d6720dd03258f3728fedde /tools/config.ts |
initial commit
Diffstat (limited to 'tools/config.ts')
-rw-r--r-- | tools/config.ts | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/tools/config.ts b/tools/config.ts new file mode 100644 index 0000000..9c5559a --- /dev/null +++ b/tools/config.ts @@ -0,0 +1,101 @@ +import {readFileSync} from 'fs'; +import {argv} from 'yargs'; + + +// -------------- +// Configuration. +export const ENV = argv['env'] || 'dev'; +export const DEBUG = argv['debug'] || false; +export const PORT = argv['port'] || 5555; +export const LIVE_RELOAD_PORT = argv['reload-port'] || 4002; +export const DOCS_PORT = argv['docs-port'] || 4003; +export const APP_BASE = argv['base'] || '/'; + +export const APP_TITLE = 'My Angular2 App'; + +export const APP_SRC = 'app'; +export const ASSETS_SRC = `${APP_SRC}/assets`; + +export const TOOLS_DIR = 'tools'; +export const TMP_DIR = 'tmp'; +export const TEST_DEST = 'test'; +export const DOCS_DEST = 'docs'; +export const APP_DEST = `dist/${ENV}`; +export const ASSETS_DEST = `${APP_DEST}/assets`; +export const BUNDLES_DEST = `${APP_DEST}/bundles`; +export const CSS_DEST = `${APP_DEST}/css`; +export const FONTS_DEST = `${APP_DEST}/fonts`; +export const LIB_DEST = `${APP_DEST}/lib`; +export const APP_ROOT = ENV === 'dev' ? `${APP_BASE}${APP_DEST}/` : `${APP_BASE}`; +export const VERSION = appVersion(); + +export const VERSION_NPM = '2.14.7'; +export const VERSION_NODE = '4.0.0'; + +// Declare NPM dependencies (Note that globs should not be injected). +export const NPM_DEPENDENCIES = [ + { src: 'systemjs/dist/system-polyfills.js', dest: LIB_DEST }, + + { src: 'es6-shim/es6-shim.min.js', inject: 'shims', dest: LIB_DEST }, + { src: 'reflect-metadata/Reflect.js', inject: 'shims', dest: LIB_DEST }, + { src: 'systemjs/dist/system.src.js', inject: 'shims', dest: LIB_DEST }, + { src: 'angular2/bundles/angular2-polyfills.js', inject: 'shims', dest: LIB_DEST }, + + // Faster dev page load + { src: 'rxjs/bundles/Rx.min.js', inject: 'libs', dest: LIB_DEST }, + { src: 'angular2/bundles/angular2.min.js', inject: 'libs', dest: LIB_DEST }, + { src: 'angular2/bundles/router.js', inject: 'libs', dest: LIB_DEST }, // use router.min.js with alpha47 + { src: 'angular2/bundles/http.min.js', inject: 'libs', dest: LIB_DEST }, + + { src: 'lodash/index.js', inject: 'libs', dest: LIB_DEST }, + { src: 'moment/moment.js', inject: 'libs', dest: LIB_DEST } +]; + +// Declare local files that needs to be injected +export const APP_ASSETS = [ + { src: `${ASSETS_SRC}/css/styles.css`, inject: true, dest: CSS_DEST} +]; + +NPM_DEPENDENCIES + .filter(d => !/\*/.test(d.src)) // Skip globs + .forEach(d => d.src = require.resolve(d.src)); + +export const DEPENDENCIES = NPM_DEPENDENCIES.concat(APP_ASSETS); + + +// ---------------- +// SystemsJS Configuration. +const SYSTEM_CONFIG_DEV = { + defaultJSExtensions: true, + paths: { + 'bootstrap': `${APP_ROOT}bootstrap`, + '*': `${APP_BASE}node_modules/*` + } +}; + +const SYSTEM_CONFIG_PROD = { + defaultJSExtensions: true, + bundles: { + 'bundles/app': ['bootstrap'] + } +}; + +export const SYSTEM_CONFIG = ENV === 'dev' ? SYSTEM_CONFIG_DEV : SYSTEM_CONFIG_PROD; + +// This is important to keep clean module names as 'module name == module uri'. +export const SYSTEM_CONFIG_BUILDER = { + defaultJSExtensions: true, + paths: { + '*': `${TMP_DIR}/*`, + 'angular2/*': 'node_modules/angular2/*', + 'rxjs/*': 'node_modules/rxjs/*' + } +}; + + +// -------------- +// Private. +function appVersion(): number|string { + var pkg = JSON.parse(readFileSync('package.json').toString()); + return pkg.version; +} |