Default configuration file added

This commit is contained in:
Giuseppe Digilio
2017-01-27 18:34:24 +01:00
parent 3f484ebf4f
commit 589c9d5822
7 changed files with 73 additions and 94 deletions

5
.gitignore vendored
View File

@@ -5,9 +5,8 @@
/tsd_typings/ /tsd_typings/
npm-debug.log npm-debug.log
/config/environment.common.json /config/environment.dev.js
/config/environment.prod.json /config/environment.prod.js
/config/environment.dev.json
/coverage /coverage

View File

@@ -59,14 +59,11 @@ If you have [`nvm`](https://github.com/creationix/nvm#install-script) or [`nvm-w
* `npm install` to install the local dependencies * `npm install` to install the local dependencies
## Configuring ## Configuring
Templates for environmental and shareable configuration files are located in `config/` folder in json format. Default configuration file is located in `config/` folder.
To make the configuration: To change the default configuration values, create local files that override the parameters you need to change:
* Create a new `environment.common.json` file in `config/` folder using `environment.common.default.json` as template; * Create a new `environment.dev.js` file in `config/` for `devel` environment;
* Create a new `environment.dev.json` file in `config/` folder using `environment.default.json` as template; * Create a new `environment.prod.js` file in `config/` for `production` environment;
* Create a new `environment.prod.json` file in `config/` folder using `environment.default.json` as template;
Note: JSON standard does not allow comments so you need to remove them whether you are copying from templates.
To use the configuration parameters in your component: To use the configuration parameters in your component:
```bash ```bash
@@ -168,45 +165,44 @@ See [the guide on the wiki](https://wiki.duraspace.org/display/DSPACE/DSpace+7+-
## File Structure ## File Structure
``` ```
dspace-angular dspace-angular
├── README.md * This document ├── README.md * This document
├── app.json * Application manifest file ├── app.json * Application manifest file
├── config * Folder for configuration files ├── config * Folder for configuration files
│   ── environment.common.default.json * Template for general configuration file │   ── environment.default.js * Default configuration files
│   └── environment.default.json * Template for the dev and prod configuration files ├── e2e * Folder for e2e test files
├── e2e * Folder for e2e test files ├── karma.conf.js * Unit Test configuration file
├── karma.conf.js * Unit Test configuration file ├── nodemon.json * Nodemon (https://nodemon.io/) configuration
├── nodemon.json * Nodemon (https://nodemon.io/) configuration ├── package.json * This file describes the npm package for this project, its dependencies, scripts, etc.
├── package.json * This file describes the npm package for this project, its dependencies, scripts, etc. ├── postcss.config.json * PostCSS (http://postcss.org/) configuration file
├── postcss.config.json * PostCSS (http://postcss.org/) configuration file ├── protractor.conf.js * E2E tests configuration file
├── protractor.conf.js * E2E tests configuration file ├── resources * Folder for static resources
├── resources * Folder for static resources │   ├── i18n * Folder for i18n translations
│   ── i18n * Folder for i18n translations │   ── images * Folder for images
│   └── images * Folder for images ├── rollup-client.js * Rollup (http://rollupjs.org/) configuration for the client
├── rollup-client.js * Rollup (http://rollupjs.org/) configuration for the client ├── rollup-server.js * Rollup (http://rollupjs.org/) configuration for the server
├── rollup-server.js * Rollup (http://rollupjs.org/) configuration for the server ├── src * The source of the application
├── src * The source of the application │   ├── app * The location of the app module, and root of the application shared by client and server
│   ├── app * The location of the app module, and root of the application shared by client and server │   ├── backend * Folder containing a mock of the REST API, hosted by the express server
│   ├── backend * Folder containing a mock of the REST API, hosted by the express server │   ├── browser.module.ts * The root module for the client
│   ├── browser.module.ts * The root module for the client │   ├── client.aot.ts * The bootstrap file for the client, in production
│   ├── client.aot.ts * The bootstrap file for the client, in production │   ├── client.ts * The bootstrap file for the client, during development
│   ├── client.ts * The bootstrap file for the client, during development │   ├── config.ts * File that loads environmental and shareable settings and makes them available to app components
│   ├── config.ts * File that loads environmental and shareable settings and makes them available to app components │   ├── index-aot.html * The index.html file, for production
│   ├── index-aot.html * The index.html file, for production │   ├── index.html * The index.html file, for development
│   ├── index.html * The index.html file, for development │   ├── node.module.ts * The root module for the server
│   ├── node.module.ts * The root module for the server │   ├── server.aot.ts * The express (http://expressjs.com/) config and bootstrap file for the server, in production
│   ├── server.aot.ts * The express (http://expressjs.com/) config and bootstrap file for the server, in production │   ├── server.routes.ts * The routes file for the server
│   ├── server.routes.ts * The routes file for the server │   ├── server.ts * The express (http://expressjs.com/) config and bootstrap file for the server, during development
│   ├── server.ts * The express (http://expressjs.com/) config and bootstrap file for the server, during development │   ├── styles * Folder containing global styles.
│   ├── styles * Folder containing global styles. │   │   ├── main.scss * Global scss file
│   │   ── main.scss * Global scss file │   │   ── variables.scss * Global sass variables file
│   │   └── variables.scss * Global sass variables file │   └── typings.d.ts * File that allows you to add custom typings for libraries without TypeScript support
│   └── typings.d.ts * File that allows you to add custom typings for libraries without TypeScript support ├── tsconfig.aot.json * TypeScript config for production builds
├── tsconfig.aot.json * TypeScript config for production builds ├── tsconfig.json * TypeScript config for development build
├── tsconfig.json * TypeScript config for development build ├── tslint.json * TSLint (https://palantir.github.io/tslint/) configuration
├── tslint.json * TSLint (https://palantir.github.io/tslint/) configuration ├── webpack.config.ts * Webpack (https://webpack.github.io/) config for development builds
├── webpack.config.ts * Webpack (https://webpack.github.io/) config for development builds ├── webpack.test.config.ts * Webpack (https://webpack.github.io/) config for testing
── webpack.test.config.ts * Webpack (https://webpack.github.io/) config for testing ── webpack.prod.config.ts * Webpack (https://webpack.github.io/) config for production builds
└── webpack.prod.config.ts * Webpack (https://webpack.github.io/) config for production builds
``` ```
## 3rd Party Library Installation ## 3rd Party Library Installation

View File

@@ -1,3 +0,0 @@
{
"title": ""
}

View File

@@ -0,0 +1,14 @@
module.exports = {
"production": false,
// The REST API Location.
"rest": {
// NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript
"nameSpace": "/api",
"baseURL": "http://localhost:3000"
},
// Path and Port in use for this Angular2 UI
"ui": {
"nameSpace": "/",
"baseURL": "http://localhost:3000"
}
}

View File

@@ -1,26 +0,0 @@
{
"production": false,
// Location of REST API
"rest": {
// By default, we are currently using a local proxy running on port 5050.
// This is necessary because our actual REST API doesn't provide CORS headers yet!
// The actual REST API path is in the 'proxy' settings below.
// NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript
"nameSpace": "",
"baseURL": ""
},
// REST Location that we are proxying (see src/proxy.ts)
// (Since we are using a proxy at this time, the actual REST API goes here)
"proxy": {
"nameSpace": "",
"baseURL": ""
// E.g. to use demo.dspace.org REST API, use the below values *instead*
//nameSpace: '/rest',
//baseURL: 'https://demo.dspace.org'
},
// Path and Port in use for this Angular2 UI
"ui": {
"nameSpace": "",
"baseURL": ""
}
}

View File

@@ -59,7 +59,6 @@ export class AppComponent implements OnDestroy, OnInit {
@HostListener('window:resize', ['$event']) @HostListener('window:resize', ['$event'])
private onResize(event): void { private onResize(event): void {
console.log(GlobalConfig.rest.baseURL);
this.store.dispatch( this.store.dispatch(
HostWindowActions.resize(event.target.innerWidth, event.target.innerHeight) HostWindowActions.resize(event.target.innerWidth, event.target.innerHeight)
); );

View File

@@ -2,33 +2,33 @@
const path = require('path'); const path = require('path');
let configContext = require.context("../config", false, /json$/); let configContext = require.context("../config", false, /js$/);
let EnvConfig : any = {}; let EnvConfig : any = {};
let EnvConfigFile : string; let EnvConfigFile : string;
let CommonConfig : any = {}; let DefaultConfig : any = {};
try { try {
CommonConfig = configContext('./environment.common.json'); DefaultConfig = configContext('./environment.default.js');
} catch (e) { } catch (e) {
throw new Error(`Cannot find file "${path.resolve('config', './environment.common.json')}"`); throw new Error(`Cannot find file "${path.resolve('config', './environment.default.js')}"`);
} }
switch (process.env.NODE_ENV) { switch (process.env.NODE_ENV) {
case 'prod': case 'prod':
case 'production': case 'production':
EnvConfigFile = './environment.prod.json'; EnvConfigFile = './environment.prod.js';
break; break;
case 'dev': case 'dev':
case 'development': case 'development':
default: default:
EnvConfigFile = './environment.dev.json'; EnvConfigFile = './environment.dev.js';
} }
try { try {
EnvConfig = configContext(EnvConfigFile); EnvConfig = configContext(EnvConfigFile);
} catch (e) { } catch (e) {
throw new Error(`Cannot find file "${path.resolve('config', EnvConfigFile)}"`); EnvConfig = {};
} }
const GlobalConfig = Object.assign(CommonConfig, EnvConfig); const GlobalConfig = Object.assign(DefaultConfig, EnvConfig);
export {GlobalConfig} export {GlobalConfig}