-
Notifications
You must be signed in to change notification settings - Fork 84
/
Copy pathwebpack.config.dist.js
65 lines (60 loc) · 1.57 KB
/
webpack.config.dist.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
let path = require('path'),
srcPath = path.join(__dirname, 'src'),
distPath = path.join(__dirname, 'dist'),
webpack = require("webpack"),
pkg = require('./package.json'),
fs = require('fs'),
copyright = fs.readFileSync('./copyright.txt', 'utf8'),
HtmlWebpackPlugin = require('html-webpack-plugin');
const isProd = process.env.ENV === 'prod';
const filename = isProd ? 'wp-api-angular.umd.min.js' : 'wp-api-angular.umd.js'
copyright = copyright.replace('{pkg.name}', pkg.name)
.replace('{pkg.description}', pkg.description)
.replace('{pkg.version}', pkg.version)
.replace('{pkg.author}', pkg.author)
.replace('{pkg.homepage}', pkg.homepage)
.replace('{pkg.license}', pkg.license);
let plugins = [
new webpack.BannerPlugin(copyright)
];
if (isProd) {
plugins = plugins.concat([
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.DedupePlugin(),
new webpack.optimize.UglifyJsPlugin()
])
}
module.exports = {
entry: path.join(srcPath, 'wp-api-angular.ts'),
output: {
path: distPath,
libraryTarget: "umd",
filename
},
resolve: {
extensions: ['', '.ts', '.js', '.json']
},
externals: [
{
'rxjs': 'rxjs',
'rxjs/Observable': 'rxjs/Observable',
'rxjs/Observable.d.ts': 'rxjs/Observable.d.ts',
'@angular/core': '@angular/core',
'@angular/http': '@angular/http'
}
],
module: {
loaders: [{
test: /\.ts$/,
exclude: /(node_modules)/,
loader: 'ts'
}]
},
ts: {
compilerOptions: {
outDir: '.',
declaration: false
}
},
plugins: plugins
}