diff --git a/build/webpack.base.config.js b/build/webpack.base.config.js index 87944bc8..8208839d 100644 --- a/build/webpack.base.config.js +++ b/build/webpack.base.config.js @@ -3,7 +3,7 @@ */ const path = require('path'); const webpack = require('webpack'); -const package = require('../package.json'); +const pkg = require('../package.json'); function resolve (dir) { return path.join(__dirname, '..', dir); @@ -20,44 +20,119 @@ module.exports = { loader: 'vue-loader', options: { loaders: { - css: 'vue-style-loader!css-loader', - less: 'vue-style-loader!css-loader!less-loader' + css: [ + 'vue-style-loader', + { + loader: 'css-loader', + options: { + sourceMap: true, + }, + }, + ], + less: [ + 'vue-style-loader', + { + loader: 'css-loader', + options: { + sourceMap: true, + }, + }, + { + loader: 'less-loader', + options: { + sourceMap: true, + }, + }, + ], }, postLoaders: { - html: 'babel-loader' - } + html: 'babel-loader?sourceMap' + }, + sourceMap: true, } }, { test: /\.js$/, - loader: 'babel-loader', exclude: /node_modules/ + loader: 'babel-loader', + options: { + sourceMap: true, + }, + exclude: /node_modules/, }, { test: /\.css$/, - use: [ - 'style-loader', - 'css-loader', - 'autoprefixer-loader' + loaders: [ + { + loader: 'style-loader', + options: { + sourceMap: true, + }, + }, + { + loader: 'css-loader', + options: { + sourceMap: true, + }, + }, + { + loader: '\'autoprefixer-loader\'', + }, ] }, { test: /\.less$/, - use: [ - 'style-loader', - 'css-loader', - 'less-loader' + loaders: [ + { + loader: 'style-loader', + options: { + sourceMap: true, + }, + }, + { + loader: 'css-loader', + options: { + sourceMap: true, + }, + }, + { + loader: 'less-loader', + options: { + sourceMap: true, + }, + }, ] }, { test: /\.scss$/, - use: [ - 'style-loader', - 'css-loader', - 'sass-loader?sourceMap' + loaders: [ + { + loader: 'style-loader', + options: { + sourceMap: true, + }, + }, + { + loader: 'css-loader', + options: { + sourceMap: true, + }, + }, + { + loader: 'sass-loader', + options: { + sourceMap: true, + }, + }, ] }, - { test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/, loader: 'url-loader?limit=8192'}, - { test: /\.(html|tpl)$/, loader: 'html-loader' } + { + test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/, + loader: 'url-loader?limit=8192' + }, + { + test: /\.(html|tpl)$/, + loader: 'html-loader' + } ] }, resolve: { @@ -70,7 +145,7 @@ module.exports = { plugins: [ new webpack.optimize.ModuleConcatenationPlugin(), new webpack.DefinePlugin({ - 'process.env.VERSION': `'${package.version}'` + 'process.env.VERSION': `'${pkg.version}'` }), ] }; diff --git a/build/webpack.dev.config.js b/build/webpack.dev.config.js index d9ff4a46..46755a6c 100644 --- a/build/webpack.dev.config.js +++ b/build/webpack.dev.config.js @@ -12,6 +12,8 @@ const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); module.exports = merge(webpackBaseConfig, { + devtool: 'eval-source-map', + // 入口 entry: { main: './examples/main', diff --git a/build/webpack.dist.dev.config.js b/build/webpack.dist.dev.config.js index 9bc40bc6..cce94f6c 100644 --- a/build/webpack.dist.dev.config.js +++ b/build/webpack.dist.dev.config.js @@ -1,36 +1,38 @@ -const path = require('path'); -const webpack = require('webpack'); -const merge = require('webpack-merge'); -const webpackBaseConfig = require('./webpack.base.config.js'); - -process.env.NODE_ENV = 'production'; - -module.exports = merge(webpackBaseConfig, { - entry: { - main: './src/index.js' - }, - output: { - path: path.resolve(__dirname, '../dist'), - publicPath: '/dist/', - filename: 'iview.js', - library: 'iview', - libraryTarget: 'umd', - umdNamedDefine: true - }, - externals: { - vue: { - root: 'Vue', - commonjs: 'vue', - commonjs2: 'vue', - amd: 'vue' - } - }, - plugins: [ - // @todo - new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: '"production"' - } - }) - ] -}); +const path = require('path'); +const webpack = require('webpack'); +const merge = require('webpack-merge'); +const webpackBaseConfig = require('./webpack.base.config.js'); + +process.env.NODE_ENV = 'production'; + +module.exports = merge(webpackBaseConfig, { + devtool: 'eval-source-map', + + entry: { + main: './src/index.js' + }, + output: { + path: path.resolve(__dirname, '../dist'), + publicPath: '/dist/', + filename: 'iview.js', + library: 'iview', + libraryTarget: 'umd', + umdNamedDefine: true + }, + externals: { + vue: { + root: 'Vue', + commonjs: 'vue', + commonjs2: 'vue', + amd: 'vue' + } + }, + plugins: [ + // @todo + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: '"production"' + } + }) + ] +}); diff --git a/build/webpack.dist.locale.config.js b/build/webpack.dist.locale.config.js index b324d740..0ea9240b 100644 --- a/build/webpack.dist.locale.config.js +++ b/build/webpack.dist.locale.config.js @@ -4,6 +4,7 @@ const entry = require('./locale'); process.env.NODE_ENV = 'production'; module.exports = { + devtool: 'source-map', entry, module: { rules: [ @@ -37,9 +38,8 @@ module.exports = { } }), new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - } + parallel: true, + sourceMap: true, }) ] }; diff --git a/build/webpack.dist.prod.config.js b/build/webpack.dist.prod.config.js index 3a0c38e2..a46315aa 100644 --- a/build/webpack.dist.prod.config.js +++ b/build/webpack.dist.prod.config.js @@ -1,47 +1,47 @@ -const path = require('path'); -const webpack = require('webpack'); -const merge = require('webpack-merge'); -const webpackBaseConfig = require('./webpack.base.config.js'); -const CompressionPlugin = require('compression-webpack-plugin'); - -process.env.NODE_ENV = 'production'; - -module.exports = merge(webpackBaseConfig, { - entry: { - main: './src/index.js' - }, - output: { - path: path.resolve(__dirname, '../dist'), - publicPath: '/dist/', - filename: 'iview.min.js', - library: 'iview', - libraryTarget: 'umd', - umdNamedDefine: true - }, - externals: { - vue: { - root: 'Vue', - commonjs: 'vue', - commonjs2: 'vue', - amd: 'vue' - } - }, - plugins: [ - // @todo - new webpack.DefinePlugin({ - 'process.env.NODE_ENV': '"production"' - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - } - }), - new CompressionPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: /\.(js|css)$/, - threshold: 10240, - minRatio: 0.8 - }) - ] -}); +const path = require('path'); +const webpack = require('webpack'); +const merge = require('webpack-merge'); +const webpackBaseConfig = require('./webpack.base.config.js'); +const CompressionPlugin = require('compression-webpack-plugin'); + +process.env.NODE_ENV = 'production'; + +module.exports = merge(webpackBaseConfig, { + devtool: 'source-map', + entry: { + main: './src/index.js' + }, + output: { + path: path.resolve(__dirname, '../dist'), + publicPath: '/dist/', + filename: 'iview.min.js', + library: 'iview', + libraryTarget: 'umd', + umdNamedDefine: true + }, + externals: { + vue: { + root: 'Vue', + commonjs: 'vue', + commonjs2: 'vue', + amd: 'vue' + } + }, + plugins: [ + // @todo + new webpack.DefinePlugin({ + 'process.env.NODE_ENV': '"production"' + }), + new webpack.optimize.UglifyJsPlugin({ + parallel: true, + sourceMap: true, + }), + new CompressionPlugin({ + asset: '[path].gz[query]', + algorithm: 'gzip', + test: /\.(js|css)$/, + threshold: 10240, + minRatio: 0.8 + }) + ] +}); diff --git a/build/webpack.test.config.js b/build/webpack.test.config.js index e81b52c3..4e92aaed 100644 --- a/build/webpack.test.config.js +++ b/build/webpack.test.config.js @@ -8,8 +8,7 @@ const webpackBaseConfig = require('./webpack.base.config.js'); const webpackConfig = merge(webpackBaseConfig, { - // use inline sourcemap for karma-sourcemap-loader - devtool: '#inline-source-map', + devtool: 'eval-source-map', plugins: [ new webpack.DefinePlugin({ 'process.env': {