aboutsummaryrefslogtreecommitdiffstats
path: root/webpack-umd.config.ts
diff options
context:
space:
mode:
Diffstat (limited to 'webpack-umd.config.ts')
-rw-r--r--webpack-umd.config.ts97
1 files changed, 97 insertions, 0 deletions
diff --git a/webpack-umd.config.ts b/webpack-umd.config.ts
new file mode 100644
index 0000000..d85ead4
--- /dev/null
+++ b/webpack-umd.config.ts
@@ -0,0 +1,97 @@
+import * as webpack from 'webpack';
+import * as path from 'path';
+import * as fs from 'fs';
+import * as angularExternals from 'webpack-angular-externals';
+import * as rxjsExternals from 'webpack-rxjs-externals';
+
+const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
+const pkg = JSON.parse(fs.readFileSync('./package.json').toString());
+
+export default {
+ entry: {
+ 'index.umd': './src/angular/index.ts',
+ 'index.umd.min': './src/angular/index.ts',
+ },
+ output: {
+ path: path.join(__dirname, 'dist'),
+ filename: '[name].js',
+ libraryTarget: 'umd',
+ library: 'onap-ui-angular'
+ },
+ resolve: {
+ extensions: [ '.ts', '.js', '.json' ]
+ },
+ externals: [
+ angularExternals(),
+ rxjsExternals()
+ ],
+ devtool: 'source-map',
+ module: {
+ rules: [
+ {
+ test: /\.ts$/,
+ use: [
+ {
+ loader: 'ts-loader',
+ options: {
+ configFile: "tsconfig-aot.json"
+ }
+ },
+ {
+ loader: 'angular2-template-loader'
+ }
+ ],
+ exclude: [
+ /node_modules/,
+ /\.(spec|e2e)\.ts$/
+ ]
+ },
+
+ {
+ test: /\.json$/,
+ use: 'json-loader'
+ },
+
+ {
+ test: /\.css$/,
+ use: ['to-string-loader', 'css-loader']
+ },
+
+ {
+ test: /\.scss$/,
+ use: ['to-string-loader', 'css-loader', 'sass-loader']
+ },
+
+ {
+ test: /\.html$/,
+ use: 'raw-loader'
+ }
+ ]
+ },
+ plugins: [
+ new webpack.ContextReplacementPlugin(
+ /angular(\\|\/)core(\\|\/)@angular/,
+ path.join(__dirname, 'src/angular')
+ ),
+
+ new UglifyJsPlugin({
+ include: /\.min\.js$/,
+ sourceMap: true
+ }),
+
+ new webpack.BannerPlugin({
+ banner: `
+/**
+ * ${pkg.name} - ${pkg.description}
+ * @version v${pkg.version}
+ * @author ${pkg.author.name}
+ * @link ${pkg.homepage}
+ * @license ${pkg.license}
+ */
+ `.trim(),
+ raw: true,
+ entryOnly: true
+ })
+
+ ]
+} as webpack.Configuration;