aboutsummaryrefslogtreecommitdiffstats
path: root/webpack-umd.config.ts
diff options
context:
space:
mode:
authorIsrael Lavi <il0695@att.com>2018-08-07 10:54:17 +0300
committerIsrael Lavi <il0695@att.com>2018-08-07 11:06:44 +0300
commitb2a3acea0d0f66028c9ce5fad02d4ecc64abf70c (patch)
tree8d70110f34cb845965c42a5915e950bca967d2c3 /webpack-umd.config.ts
parent05b37297177e8a342668c15e5d6f738b51f7aedd (diff)
Initial commit.
Adding files needed for Linux Foundation. Change-Id: I9f2b4851a5ae01f83800c7f8bab8608a2221c730 Issue-ID: SDC-1608 Signed-off-by: Israel Lavi <il0695@att.com>
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;