1 | var utils = require('../libs/utils')
|
2 | var webpack = require('webpack')
|
3 | var config = require('../config')
|
4 | var merge = require('webpack-merge')
|
5 | var baseWebpackConfig = require('./webpack.wx-base.conf')
|
6 | var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
|
7 |
|
8 | var path = require('path')
|
9 | var ExtractTextPlugin = require('extract-text-webpack-plugin')
|
10 | var CopyWebpackPlugin = require('copy-webpack-plugin-hash')
|
11 | var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
|
12 |
|
13 |
|
14 | module.exports = function(entry) {
|
15 | return merge(baseWebpackConfig, {
|
16 | entry: entry,
|
17 | module: {
|
18 | rules: utils.styleLoaders({
|
19 | sourceMap: config.dev.cssSourceMap,
|
20 | extract: true
|
21 | })
|
22 | },
|
23 |
|
24 |
|
25 | devtool: '#source-map',
|
26 | output: {
|
27 | path: config.paths['wx-dist'],
|
28 | filename: utils.assetsPath('js/[name].js'),
|
29 | chunkFilename: utils.assetsPath('js/[id].js')
|
30 | },
|
31 | plugins: [
|
32 | new webpack.DefinePlugin({
|
33 | 'process.env': config.dev.env
|
34 | }),
|
35 |
|
36 |
|
37 |
|
38 | new ExtractTextPlugin({
|
39 |
|
40 | filename: utils.assetsPath('css/[name].wxss')
|
41 | }),
|
42 |
|
43 |
|
44 | new OptimizeCSSPlugin({
|
45 | cssProcessorOptions: {
|
46 | safe: true
|
47 | }
|
48 | }),
|
49 | new webpack.optimize.CommonsChunkPlugin({
|
50 | name: 'vendor',
|
51 | minChunks: function(module, count) {
|
52 |
|
53 | return (
|
54 | module.resource &&
|
55 | /\.js$/.test(module.resource) &&
|
56 | module.resource.indexOf('node_modules') >= 0
|
57 | ) || count >= 2
|
58 | }
|
59 | }),
|
60 | new webpack.optimize.CommonsChunkPlugin({
|
61 | name: 'manifest',
|
62 | chunks: ['vendor']
|
63 | }),
|
64 |
|
65 | new CopyWebpackPlugin([{
|
66 | from: config.paths['wx-assets'],
|
67 | to: config.paths['wx-assets-dist'],
|
68 | ignore: ['.*']
|
69 | }]),
|
70 |
|
71 |
|
72 |
|
73 | new webpack.NoEmitOnErrorsPlugin(),
|
74 |
|
75 |
|
76 |
|
77 |
|
78 |
|
79 |
|
80 | new FriendlyErrorsPlugin()
|
81 | ]
|
82 | })
|
83 | };
|