2016-11-10 02:38:11 +00:00
|
|
|
'use strict'
|
|
|
|
|
2017-01-11 19:14:59 +00:00
|
|
|
import { defaults } from 'lodash'
|
2017-04-30 11:58:25 +00:00
|
|
|
import { extractStyles, styleLoader } from './helpers'
|
2016-12-13 16:39:59 +00:00
|
|
|
|
2017-01-11 19:14:59 +00:00
|
|
|
export default function ({ isClient }) {
|
2016-12-13 16:39:59 +00:00
|
|
|
let babelOptions = JSON.stringify(defaults(this.options.build.babel, {
|
2017-02-17 15:13:51 +00:00
|
|
|
presets: ['vue-app'],
|
2017-04-17 13:27:32 +00:00
|
|
|
babelrc: false,
|
2017-02-17 15:13:51 +00:00
|
|
|
cacheDirectory: !!this.dev
|
2016-12-13 16:39:59 +00:00
|
|
|
}))
|
2017-04-30 11:58:25 +00:00
|
|
|
|
|
|
|
// https://github.com/vuejs/vue-loader/blob/master/docs/en/configurations
|
2016-11-09 22:59:41 +00:00
|
|
|
let config = {
|
2016-11-22 23:47:31 +00:00
|
|
|
postcss: this.options.build.postcss,
|
2016-11-09 22:59:41 +00:00
|
|
|
loaders: {
|
2016-12-13 16:37:53 +00:00
|
|
|
'js': 'babel-loader?' + babelOptions,
|
2017-04-30 11:58:25 +00:00
|
|
|
'css': styleLoader.call(this, 'css'),
|
|
|
|
'less': styleLoader.call(this, 'less', 'less-loader'),
|
|
|
|
'sass': styleLoader.call(this, 'sass', 'sass-loader?indentedSyntax'),
|
|
|
|
'scss': styleLoader.call(this, 'sass', 'scss-loader'),
|
|
|
|
'stylus': styleLoader.call(this, 'stylus', 'stylus-loader'),
|
|
|
|
'styl': styleLoader.call(this, 'stylus', 'stylus-loader')
|
2016-12-20 10:58:32 +00:00
|
|
|
},
|
2017-04-30 11:58:25 +00:00
|
|
|
preserveWhitespace: false,
|
|
|
|
extractCSS: extractStyles.call(this, 'vue')
|
2016-11-07 01:34:58 +00:00
|
|
|
}
|
2016-11-09 22:59:41 +00:00
|
|
|
// Return the config
|
|
|
|
return config
|
2016-11-07 01:34:58 +00:00
|
|
|
}
|