Blame view

build/webpack.config.js 2.26 KB
7fa943eb   梁灏   init
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
66
67
68
69
70
71
72
  /**
   * 本地预览
   */
  
  var path = require('path');
  var webpack = require('webpack');
  var ExtractTextPlugin = require('extract-text-webpack-plugin');
  var HtmlWebpackPlugin = require('html-webpack-plugin');
  
  module.exports = {
      // 入口
      entry: {
          main: './local/main',
          vendors: ['vue', 'vue-router']
      },
      // 输出
      output: {
          path: path.join(__dirname, '.././local/dist'),
          publicPath: '/local/dist/',
          filename: '[name].js',
          chunkFilename: '[name].chunk.js'
      },
      // 加载器
      module: {
          loaders: [
              { test: /\.vue$/, loader: 'vue' },
              { test: /\.js$/, loader: 'babel', exclude: /node_modules/ },
              { test: /\.css$/, loader: 'style!css!autoprefixer'},
              { test: /\.less$/, loader: 'style!css!less' },
              { test: /\.scss$/, loader: 'style!css!sass?sourceMap'},
              { test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/, loader: 'url-loader?limit=8192'},
              { test: /\.(html|tpl)$/, loader: 'html-loader' }
          ]
      },
      vue: {
          loaders: {
              css: ExtractTextPlugin.extract(
                  "style-loader",
                  "css-loader?sourceMap",
                  {
                      publicPath: "../local/dist/"
                  }
              ),
              less: ExtractTextPlugin.extract(
                  'vue-style-loader',
                  'css-loader!less-loader'
              ),
              js: 'babel'
          }
      },
      // 转es5
      babel: {
          presets: ['es2015'],
          plugins: ['transform-runtime']
      },
      resolve: {
          // require时省略的扩展名,如:require('module') 不需要module.js
          extensions: ['', '.js', '.vue'],
          alias: {
              iview: '../.././index'
          }
      },
      plugins: [
          new ExtractTextPlugin("[name].css",{ allChunks : true,resolve : ['modules'] }),             // 提取CSS
          new webpack.optimize.CommonsChunkPlugin('vendors', 'vendors.js'),                           // 提取第三方库
          new HtmlWebpackPlugin({                                                                     // 构建html文件
              filename: '../../index.html',
              template: './local/template/index.html',
              inject: 'body'
          })
      ]
  };