forked from indrimuska/angular-moment-picker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.config.js
52 lines (48 loc) · 1.66 KB
/
webpack.config.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
'use strict';
let pkg = require('./package');
let bower = require('./bower');
let semver = require('semver');
let webpack = require('webpack');
let autoprefixer = require('autoprefixer');
let extractTextPlugin = require('extract-text-webpack-plugin');
let generateJsonPlugin = require('generate-json-webpack-plugin');
let isProduction = process.argv.indexOf('-p') != -1;
let filename = 'angular-moment-picker' + (isProduction ? '.min' : '');
let increase = (process.argv.filter(argv => argv.match(/^increase=.+$/))[0] || '').replace('increase=', '');
// sync bower.json with package.json
pkg.version = increase ? semver.inc(pkg.version, increase) : pkg.version;
['name', 'version', 'description', 'homepage', 'license', 'keywords', 'dependencies'].forEach(field => bower[field] = pkg[field]);
module.exports = {
entry: [
'./src/index.ts',
'./src/index.less'
],
output: {
path: './dist/',
filename: filename + '.js'
},
bail: true,
externals: Object.keys(pkg.dependencies),
resolve: {
extensions: ['', '.ts', '.html', '.less']
},
module: {
preLoaders: [
{ test: /\.ts$/, loader: 'tslint' }
],
loaders: [
{ test: /\.ts$/, loader: 'ts' },
{ test: /\.html$/, loader: 'html?minimize=true' },
{ test: /\.less$/, loader: extractTextPlugin.extract('style', 'css!postcss!less') }
]
},
plugins: [
new extractTextPlugin(filename + '.css'),
new webpack.BannerPlugin('Angular Moment Picker - v' + pkg.version + ' - ' + pkg.homepage + ' - (c) 2015 Indri Muska - ' + pkg.license),
new generateJsonPlugin('../bower.json', bower, undefined, 2),
new generateJsonPlugin('../package.json', pkg, undefined, 2)
],
postcss: [
autoprefixer({ browsers: ['> 0%'] })
]
};