@holisticon/angularjs-common

0.5.3 • Public • Published

AngularJS Common Module

DEPRECATED

Build Status Build status npm version Code Climate Issue Count Dependency Status devDependency Status

A simple module for AngularJS , that encapsulates the complete Webpack build and just requires some basic configuration in the using AngularJS projects without hassle around with the build

NPM

Installation

npm install @holisticon/angularjs-common --save

Or if you want to use the development version (nightly build), which maybe not stable:

npm install @holisticon/angularjs-common@next --save

Usage

Basic Usage

  • Create an config path, e.g. etc/appConfig.js:
var path = require("path");
// resolve paths
var sourceRoot = path.resolve(__dirname, '..', 'src', 'main', 'frontend'),
  testRoot = path.resolve(__dirname, '..', 'src', 'test', 'frontend'),
  distRoot = path.resolve(__dirname, '..', 'src', 'main', 'resources', 'static');
// overwrite defaults
var appConfig = {
  srcPath: 'src/main/frontend',
  testPath: 'src/test/frontend',
  entry: {
    app: sourceRoot + '/scripts/app.js',
    salesboard: sourceRoot + '/scripts/app.salesboard.js',
    assignment: sourceRoot + '/scripts/app.assignment.js'
  },
  srcApp: path.resolve(sourceRoot, 'app'),
  testApp: path.resolve(testRoot, 'specs'),
  srcSASS: path.resolve(sourceRoot, 'scss'),
  srcI18N: path.resolve(sourceRoot, 'app', 'i18n'),
  srcIMG: path.resolve(sourceRoot, 'img'),
  dist: distRoot
};
module.exports = appConfig;

And provide a dummy files for

  • karma.conf.js:
process.env['APP_CONFIG'] = require("path").resolve(__dirname, 'etc', 'appConfig.js');
module.exports = require('@holisticon/angularjs-common').karma;
  • karma.conf.ci.js:
process.env['APP_CONFIG'] = require("path").resolve(__dirname, 'etc', 'appConfig.js');
module.exports = require('@holisticon/angularjs-common').karma_ci;
  • webpack.config.js:
process.env['APP_CONFIG'] = require("path").resolve(__dirname, 'etc', 'appConfig.js');
module.exports = require('@holisticon/angularjs-common').webpack;
  • Append following entries to your package.json:
  ...
  "scripts": {
    "start": "npm install && npm run watch",
    "watch": "cross-env NODE_ENV=development webpack-dev-server --hot --inline --colors --progress --display-error-details --port 3000 ",
    "build": "cross-env NODE_ENV=production webpack",
    "test": "cross-env NODE_ENV=test karma start etc/karma.conf.ci.js",
    "debug": "cross-env NODE_ENV=test karma start etc/karma.conf.js"
  },
  ...

If you run npm run watch you can see your dependency statistics at localhost:3000/statistics.html: WEBPACK VISUALIZER

Advanced Usage

JUnit-Report customization

...
var appConfig = {
  ...
    junit: {
    title: 'MyProject',
    dir: 'dist/test-reports'
  },
  ...
};

module.exports = appConfig;

Multiple apps

var path = require("path");

// resolve paths
var sourceRoot = path.resolve(__dirname, '..', 'src', 'main', 'frontend'),
  testRoot = path.resolve(__dirname, '..', 'src', 'test', 'frontend'),
  distRoot = path.resolve(__dirname, '..', 'src', 'main', 'resources', 'static');
// overwrite defaults
var appConfig = {
  srcPath: 'src/main/frontend',
  testPath: 'src/test/frontend',
  testSpecs: '/specs/**/*.ts',
  templatesPath: 'src/main/frontend/scripts/templates',
  entry: {
    app: sourceRoot + '/scripts/app.js',
    salesboard: sourceRoot + '/scripts/app.salesboard.js',
    assignment: sourceRoot + '/scripts/app.assignment.js'
  },
  index: 'src/main/frontend/index.html',
  srcApp: path.resolve(sourceRoot, 'app'),
  testApp: path.resolve(testRoot, 'specs'),
  srcSASS: path.resolve(sourceRoot, 'scss'),
  srcI18N: path.resolve(sourceRoot, 'app', 'i18n'),
  srcIMG: path.resolve(sourceRoot, 'img'),
  dist: distRoot,
  proxy: {
    '*': 'http://localhost:8080' // REST service
  }
};
module.exports = appConfig;var path = require("path");

// resolve paths
var sourceRoot = path.resolve(__dirname, '..', 'src', 'main', 'frontend'),
  testRoot = path.resolve(__dirname, '..', 'src', 'test', 'frontend'),
  distRoot = path.resolve(__dirname, '..', 'src', 'main', 'resources', 'static');
// overwrite defaults
var appConfig = {
  srcPath: 'src/main/frontend',
  testPath: 'src/test/frontend',
  appPath: 'src/main/frontend/scripts/app*.js',
  templatesPath: 'src/main/frontend/scripts/templates',
  entry: {
    app: sourceRoot + '/scripts/app.js',
    salesboard: sourceRoot + '/scripts/app.salesboard.js',
    assignment: sourceRoot + '/scripts/app.assignment.js'
  },
  chunks: {
    filename: "commons.[chunkhash].chunk.js",
    name: "commons"
  },
  indexFiles: [{
    filename: 'index.html',
    template: 'src/main/frontend/index.html',
    chunks: ['app', 'commons'],
    chunksSortMode: 'dependency'
  }, {
    filename: 'salesboard.html',
    template: 'src/main/frontend/salesboard.html',
    chunks: ['salesboard', 'commons'],
    chunksSortMode: 'dependency'
  }, {
    filename: 'assignment.html',
    template: 'src/main/frontend/assignment.html',
    chunks: ['assignment', 'commons'],
    chunksSortMode: 'dependency'
  }],
  srcApp: path.resolve(sourceRoot, 'app'),
  testApp: path.resolve(testRoot, 'specs'),
  srcSASS: path.resolve(sourceRoot, 'scss'),
  srcI18N: path.resolve(sourceRoot, 'app', 'i18n'),
  srcIMG: path.resolve(sourceRoot, 'img'),
  dist: distRoot,
  proxy: {
    '*': 'http://localhost:8080' // REST service
  },
  additionalWebpackOptions: {
    plugins {
      /* show only de and en locale */
      new webpack.NormalModuleReplacementPlugin(
        /moment[\/\\]locale$/,
        /de|en/
      )
    }
  }
};
module.exports = appConfig;

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
0.5.33latest
0.4.2-532next

Version History

VersionDownloads (Last 7 Days)Published
0.5.33
0.5.21
0.5.11
0.5.02
0.4.32
0.4.2-532
0.4.21
0.4.13
0.3.0-261
0.3.0-251
0.3.0-242
0.3.0-231
0.3.0-221
0.3.0-211
0.4.0-511
0.4.0-502
0.3.0-202
0.4.02
0.3.0-191
0.3.0-181
0.3.0-171
0.3.0-142
0.3.0-131
0.3.0-52
0.4.0-dev-41
0.4.0-dev-32
0.3.01
0.3.0-491
0.3.0-dev-481
0.3.0-dev-472
0.3.0-dev-462
0.3.0-dev-451
0.2.5-442
0.2.51
0.2.4-431
0.2.4-421
0.2.4-412
0.2.4-401
0.2.41
0.2.4-dev-391
0.2.3-382
0.2.32
0.2.3-dev-371
0.2.3-dev-361
0.2.3-dev-341
0.2.3-dev-332
0.2.3-dev-312
0.2.3-dev-302
0.2.2-291
0.2.22
0.2.2-dev-282
0.2.2-dev-272
0.2.1-261
0.2.11
0.2.1-dev-252
0.2.0-231
0.2.01
0.2.0-dev-222
0.2.0-dev-212
0.2.0-dev-201
0.2.0-dev-181
0.2.0-dev-172
0.2.0-dev-163
0.2.0-dev-133
0.2.0-dev-122
0.1.2-112
0.1.2-dev-102
0.1.22
0.1.2-dev-91
0.1.1-81
0.1.11
0.1.1-71
0.1.01

Package Sidebar

Install

npm i @holisticon/angularjs-common

Weekly Downloads

111

Version

0.5.3

License

MIT

Unpacked Size

324 kB

Total Files

23

Last publish

Collaborators

  • luchsamapparat
  • christoph-fricke
  • holisticon-oss
  • hypery2k