diff options
| author | Roger Braun <roger@rogerbraun.net> | 2016-10-26 16:46:32 +0200 |
|---|---|---|
| committer | Roger Braun <roger@rogerbraun.net> | 2016-10-26 16:46:32 +0200 |
| commit | 191c02af1ebfc7e6c53dc88d97c4e3ca23fbea8b (patch) | |
| tree | b3a132f8eba6ee92d6ec2a581f0bf33e1852010b /build/webpack.base.conf.js | |
Basic skeleton
Diffstat (limited to 'build/webpack.base.conf.js')
| -rw-r--r-- | build/webpack.base.conf.js | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/build/webpack.base.conf.js b/build/webpack.base.conf.js new file mode 100644 index 00000000..dc13c4f9 --- /dev/null +++ b/build/webpack.base.conf.js @@ -0,0 +1,94 @@ +var path = require('path') +var config = require('../config') +var utils = require('./utils') +var projectRoot = path.resolve(__dirname, '../') + +var env = process.env.NODE_ENV +// check env & config/index.js to decide weither to enable CSS Sourcemaps for the +// various preprocessor loaders added to vue-loader at the end of this file +var cssSourceMapDev = (env === 'development' && config.dev.cssSourceMap) +var cssSourceMapProd = (env === 'production' && config.build.productionSourceMap) +var useCssSourceMap = cssSourceMapDev || cssSourceMapProd + +module.exports = { + entry: { + app: './src/main.js' + }, + output: { + path: config.build.assetsRoot, + publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath, + filename: '[name].js' + }, + resolve: { + extensions: ['', '.js', '.vue'], + fallback: [path.join(__dirname, '../node_modules')], + alias: { + 'vue$': 'vue/dist/vue', + 'src': path.resolve(__dirname, '../src'), + 'assets': path.resolve(__dirname, '../src/assets'), + 'components': path.resolve(__dirname, '../src/components') + } + }, + resolveLoader: { + fallback: [path.join(__dirname, '../node_modules')] + }, + module: { + preLoaders: [ + { + test: /\.vue$/, + loader: 'eslint', + include: projectRoot, + exclude: /node_modules/ + }, + { + test: /\.js$/, + loader: 'eslint', + include: projectRoot, + exclude: /node_modules/ + } + ], + loaders: [ + { + test: /\.vue$/, + loader: 'vue' + }, + { + test: /\.js$/, + loader: 'babel', + include: projectRoot, + exclude: /node_modules/ + }, + { + test: /\.json$/, + loader: 'json' + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + loader: 'url', + query: { + limit: 10000, + name: utils.assetsPath('img/[name].[hash:7].[ext]') + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + loader: 'url', + query: { + limit: 10000, + name: utils.assetsPath('fonts/[name].[hash:7].[ext]') + } + } + ] + }, + eslint: { + formatter: require('eslint-friendly-formatter') + }, + vue: { + loaders: utils.cssLoaders({ sourceMap: useCssSourceMap }), + postcss: [ + require('autoprefixer')({ + browsers: ['last 2 versions'] + }) + ] + } +} |
