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/
npm-debug.log
/config/environment.common.json
/config/environment.prod.json
/config/environment.dev.json
/config/environment.dev.js
/config/environment.prod.js
/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
## 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:
* Create a new `environment.common.json` file in `config/` folder using `environment.common.default.json` as template;
* Create a new `environment.dev.json` file in `config/` folder using `environment.default.json` as template;
* 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 change the default configuration values, create local files that override the parameters you need to change:
* Create a new `environment.dev.js` file in `config/` for `devel` environment;
* Create a new `environment.prod.js` file in `config/` for `production` environment;
To use the configuration parameters in your component:
```bash
@@ -168,45 +165,44 @@ See [the guide on the wiki](https://wiki.duraspace.org/display/DSPACE/DSpace+7+-
## File Structure
```
dspace-angular
├── README.md * This document
├── app.json * Application manifest file
├── config * Folder for configuration files
│   ── environment.common.default.json * Template for general configuration file
│   └── environment.default.json * Template for the dev and prod configuration files
├── e2e * Folder for e2e test files
├── karma.conf.js * Unit Test configuration file
├── nodemon.json * Nodemon (https://nodemon.io/) configuration
├── package.json * This file describes the npm package for this project, its dependencies, scripts, etc.
├── postcss.config.json * PostCSS (http://postcss.org/) configuration file
├── protractor.conf.js * E2E tests configuration file
├── resources * Folder for static resources
│   ── i18n * Folder for i18n translations
│   └── images * Folder for images
├── rollup-client.js * Rollup (http://rollupjs.org/) configuration for the client
├── rollup-server.js * Rollup (http://rollupjs.org/) configuration for the server
├── src * The source of the application
│   ├── 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
│   ├── browser.module.ts * The root module for the client
│   ├── client.aot.ts * The bootstrap file for the client, in production
│   ├── 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
│   ├── index-aot.html * The index.html file, for production
│   ├── index.html * The index.html file, for development
│   ├── 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.routes.ts * The routes file for the server
│   ├── server.ts * The express (http://expressjs.com/) config and bootstrap file for the server, during development
│   ├── styles * Folder containing global styles.
│   │   ── main.scss * Global scss file
│   │   └── variables.scss * Global sass variables file
│   └── 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.json * TypeScript config for development build
├── tslint.json * TSLint (https://palantir.github.io/tslint/) configuration
├── 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.prod.config.ts * Webpack (https://webpack.github.io/) config for production builds
├── README.md * This document
├── app.json * Application manifest file
├── config * Folder for configuration files
│   ── environment.default.js * Default configuration files
├── e2e * Folder for e2e test files
├── karma.conf.js * Unit Test configuration file
├── nodemon.json * Nodemon (https://nodemon.io/) configuration
├── package.json * This file describes the npm package for this project, its dependencies, scripts, etc.
├── postcss.config.json * PostCSS (http://postcss.org/) configuration file
├── protractor.conf.js * E2E tests configuration file
├── resources * Folder for static resources
│   ├── i18n * Folder for i18n translations
│   ── images * Folder for images
├── rollup-client.js * Rollup (http://rollupjs.org/) configuration for the client
├── rollup-server.js * Rollup (http://rollupjs.org/) configuration for the server
├── src * The source of the application
│   ├── 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
│   ├── browser.module.ts * The root module for the client
│   ├── client.aot.ts * The bootstrap file for the client, in production
│   ├── 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
│   ├── index-aot.html * The index.html file, for production
│   ├── index.html * The index.html file, for development
│   ├── 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.routes.ts * The routes file for the server
│   ├── server.ts * The express (http://expressjs.com/) config and bootstrap file for the server, during development
│   ├── styles * Folder containing global styles.
│   │   ├── main.scss * Global scss file
│   │   ── variables.scss * Global sass variables file
│   └── 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.json * TypeScript config for development build
├── tslint.json * TSLint (https://palantir.github.io/tslint/) configuration
├── 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.prod.config.ts * Webpack (https://webpack.github.io/) config for production builds
```
## 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'])
private onResize(event): void {
console.log(GlobalConfig.rest.baseURL);
this.store.dispatch(
HostWindowActions.resize(event.target.innerWidth, event.target.innerHeight)
);

View File

@@ -2,33 +2,33 @@
const path = require('path');
let configContext = require.context("../config", false, /json$/);
let configContext = require.context("../config", false, /js$/);
let EnvConfig : any = {};
let EnvConfigFile : string;
let CommonConfig : any = {};
let DefaultConfig : any = {};
try {
CommonConfig = configContext('./environment.common.json');
DefaultConfig = configContext('./environment.default.js');
} 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) {
case 'prod':
case 'production':
EnvConfigFile = './environment.prod.json';
break;
case 'dev':
case 'development':
default:
EnvConfigFile = './environment.dev.json';
case 'prod':
case 'production':
EnvConfigFile = './environment.prod.js';
break;
case 'dev':
case 'development':
default:
EnvConfigFile = './environment.dev.js';
}
try {
EnvConfig = configContext(EnvConfigFile);
EnvConfig = configContext(EnvConfigFile);
} 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}