From 36fa7c6c18ca5aab2aa335fa49154eeb90700942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=81=8F?= Date: Wed, 1 Mar 2017 10:31:17 +0800 Subject: [PATCH] update webpack config of test update webpack config of test --- build/webpack.dev.config.js | 101 ++++++++++++++++++++++++++---------- 1 file changed, 75 insertions(+), 26 deletions(-) diff --git a/build/webpack.dev.config.js b/build/webpack.dev.config.js index ced54871..2f356e96 100644 --- a/build/webpack.dev.config.js +++ b/build/webpack.dev.config.js @@ -21,41 +21,90 @@ module.exports = { }, // 加载器 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'}, + // https://doc.webpack-china.org/guides/migrating/#module-loaders-module-rules + rules: [ + { + // https://vue-loader.vuejs.org/en/configurations/extract-css.html + test: /\.vue$/, + loader: 'vue-loader', + options: { + loaders: { + css: ExtractTextPlugin.extract({ + use: 'css-loader', + fallback: 'vue-style-loader' // <- this is a dep of vue-loader, so no need to explicitly install if using npm3 + }) + }, + postLoaders: { + html: 'babel-loader' + } + } + }, + // { test: /\.vue$/, loader: 'vue' }, + // Module build failed: Error: The node API for `babel` has been moved to `babel-core`. + // https://github.com/babel/babel-loader/blob/master/README.md#the-node-api-for-babel-has-been-moved-to-babel-core + { + test: /\.js$/, + loader: 'babel-loader', exclude: /node_modules/ + }, + { + test: /\.css$/, + use: [ + 'style-loader', + 'css-loader', + 'autoprefixer-loader' + ] + }, + { + test: /\.less$/, + use: [ + 'style-loader', + 'css-loader', + 'less-loader' + ] + // loader: 'style!css!less' + }, + { + test: /\.scss$/, + use: [ + 'style-loader', + 'css-loader', + 'sass-loader?sourceMap' + ] + // 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: "/test/dist/" - } - ), - less: ExtractTextPlugin.extract( - 'vue-style-loader', - 'css-loader!less-loader' - ), - js: 'babel' - } - }, + // vue: { + // loaders: { + // css: ExtractTextPlugin.extract( + // "style-loader", + // "css-loader?sourceMap", + // { + // publicPath: "/test/dist/" + // } + // ), + // less: ExtractTextPlugin.extract( + // 'vue-style-loader', + // 'css-loader!less-loader' + // ), + // js: 'babel' + // } + // }, resolve: { // require时省略的扩展名,如:require('module') 不需要module.js - extensions: ['', '.js', '.vue'], + extensions: ['.js', '.vue'], alias: { - iview: '../../src/index' + iview: '../../src/index', + vue: 'vue/dist/vue.js' } }, plugins: [ - new ExtractTextPlugin("[name].css",{ allChunks : true,resolve : ['modules'] }), // 提取CSS - new webpack.optimize.CommonsChunkPlugin('vendors', 'vendors.js'), // 提取第三方库 + new ExtractTextPlugin({ filename: '[name].css', disable: false, allChunks: true }), + // new ExtractTextPlugin("[name].css",{ allChunks : true,resolve : ['modules'] }), // 提取CSS + // https://doc.webpack-china.org/plugins/commons-chunk-plugin/ + new webpack.optimize.CommonsChunkPlugin({ name: 'vendors', filename: 'vendor.bundle.js' }) + // new webpack.optimize.CommonsChunkPlugin('vendors', 'vendors.js'), // 提取第三方库 ] };