forked from rombdn/img-touch-canvas
/
webpack.config.js
57 lines (55 loc) · 1.54 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
53
54
55
56
57
// use "webpack --config ./webpack.config.js"
const path = require('path');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
module.exports = {
// base url.
context: path.resolve(__dirname, '.'),
entry: {
main: './src/zoomage.js',
},
mode: 'production',
output: {
filename: 'zoomage.min.js',
path: path.resolve(__dirname, './dist'),
publicPath: '',
crossOriginLoading: 'anonymous',
libraryExport: 'default',
libraryTarget: 'window', // used for export libraries.
library: 'Zoomage',
},
// regard module as every single source file.
module: {
rules: [
{
test: /\.js$/,
include: [/src\/js/],
loader: 'eslint-loader',
// set the sequence to the top.
enforce: 'pre',
},
{
test: /\.js$/,
use: 'babel-loader',
}
]
},
resolve: {
/*
alias: [{
name: 'components',
alias: './src/components/',
onlyModule: true // only used on standalone "components", not "components/path/...";
}] */
// mainFields: ["browser", "module", "main"] // -> web / webworker
// mainFields: ["module", "main"] // -> web // -> others
mainFields: ['jsnext:main', 'browser', 'main'],
extensions: ['.js'], // default import extension (require('./data') -> data.js/data.json).
modules:['node_modules'], // directories for searching modules.
descriptionFiles: ['package.json'],
enforceExtension: false,
enforceModuleExtension: false
},
optimization: {
minimizer: [new UglifyJsPlugin()],
}
};