1 |
|
2 | var webpack = require('webpack');
|
3 | var HappyPack = require('happypack');
|
4 | var happyThreadPool = HappyPack.ThreadPool({ size: 4 });
|
5 |
|
6 | var commonConf = {
|
7 | module: {
|
8 |
|
9 | loaders: [
|
10 | {
|
11 | test: /\.tag$/,
|
12 | exclude: /node_modules/,
|
13 | loader: ['babel-loader', 'riotjs-loader']
|
14 | },
|
15 | {
|
16 | test: /\.js$/,
|
17 | exclude: /node_modules/,
|
18 | loaders: ['happypack/loader?id=js']
|
19 | },
|
20 | {
|
21 | test: /\.(jpeg|jpg|png|gif)$/,
|
22 | loader: 'url-loader?limit=10240'
|
23 | },
|
24 | {
|
25 | test: /\.html$/,
|
26 | loader: 'html-loader'
|
27 | },
|
28 | {
|
29 | test: /\.json$/, loader: 'json-loader'
|
30 | },
|
31 | {
|
32 | test: /\.woff(\?.+)?$/, loader: "url?limit=10000&mimetype=application/font-woff"
|
33 | },
|
34 | {
|
35 | test: /\.woff2(\?.+)?$/, loader: "url?limit=10000&mimetype=application/font-woff"
|
36 | },
|
37 | {
|
38 | test: /\.ttf(\?.+)?$/, loader: "url?limit=10000&mimetype=application/octet-stream"
|
39 | },
|
40 | {
|
41 | test: /\.eot(\?.+)?$/, loader: "file"
|
42 | },
|
43 | {
|
44 | test: /\.svg(\?.+)?$/, loader: "url?limit=10000&mimetype=image/svg+xml"
|
45 | }
|
46 | ]
|
47 | },
|
48 | resolve: {
|
49 |
|
50 |
|
51 |
|
52 |
|
53 |
|
54 |
|
55 | }
|
56 | };
|
57 |
|
58 | var webpackConf = {
|
59 | dev: {
|
60 | devtool: "inline-source-map",
|
61 |
|
62 | cache: true,
|
63 | plugins: [
|
64 | new HappyPack({
|
65 | id: 'js',
|
66 | cache: true,
|
67 | verbose: false,
|
68 | threadPool: happyThreadPool,
|
69 | loaders: [ 'babel-loader' ]
|
70 | }),
|
71 | ],
|
72 | module: commonConf.module,
|
73 | resolve: commonConf.resolve
|
74 |
|
75 | },
|
76 |
|
77 | dest: {
|
78 | devtool: false,
|
79 | cache: false,
|
80 | plugins: [
|
81 | new webpack.optimize.ModuleConcatenationPlugin(),
|
82 | new HappyPack({
|
83 | id: 'js',
|
84 | cache: true,
|
85 | verbose: false,
|
86 | threadPool: happyThreadPool,
|
87 | loaders: [ 'babel-loader' ]
|
88 | }),
|
89 | ],
|
90 | module: commonConf.module,
|
91 | resolve: commonConf.resolve
|
92 | }
|
93 | };
|
94 |
|
95 | try {
|
96 | var dllref = new webpack.DllReferencePlugin({
|
97 | context: __dirname,
|
98 | manifest: require('./manifest.json'),
|
99 | });
|
100 | webpackConf.dev.plugins.unshift(dllref);
|
101 | webpackConf.dest.plugins.unshift(dllref);
|
102 | }
|
103 | catch(e) {
|
104 | console.log('没有生成webpack DllReferencePlugin插件所需的 manifest.json');
|
105 | }
|
106 |
|
107 |
|
108 | webpackConf.rd = Object.assign(webpackConf.dest, {});
|
109 | webpackConf.qa = Object.assign(webpackConf.dest, {});
|
110 |
|
111 | module.exports = webpackConf; |
\ | No newline at end of file |