Nuxt/lib/builder/webpack/vue-loader.js

43 lines
1.3 KiB
JavaScript
Raw Normal View History

2018-03-16 16:12:06 +00:00
import postcssConfig from './postcss'
import styleLoader from './style-loader'
2017-12-28 16:05:34 +00:00
2018-03-16 16:12:06 +00:00
export default function vueLoader({ isServer }) {
2017-08-14 14:03:07 +00:00
// https://vue-loader.vuejs.org/en
2017-06-15 22:19:53 +00:00
const config = {
2017-12-28 16:05:34 +00:00
postcss: postcssConfig.call(this),
2017-11-11 12:52:45 +00:00
extractCSS: !!this.options.build.extractCSS,
2017-08-14 14:03:07 +00:00
cssSourceMap: this.options.build.cssSourceMap,
preserveWhitespace: false,
loaders: {
2018-01-13 05:22:11 +00:00
js: {
2017-08-14 14:03:07 +00:00
loader: 'babel-loader',
options: this.getBabelOptions({ isServer })
2017-08-14 14:03:07 +00:00
},
// Note: do not nest the `postcss` option under `loaders`
2018-01-13 05:22:11 +00:00
css: styleLoader.call(this, 'css', [], true),
less: styleLoader.call(this, 'less', 'less-loader', true),
scss: styleLoader.call(this, 'scss', 'sass-loader', true),
sass: styleLoader.call(
this,
'sass',
{ loader: 'sass-loader', options: { indentedSyntax: true } },
true
),
stylus: styleLoader.call(this, 'stylus', 'stylus-loader', true),
styl: styleLoader.call(this, 'stylus', 'stylus-loader', true)
},
template: {
2017-08-14 14:03:07 +00:00
doctype: 'html' // For pug, see https://github.com/vuejs/vue-loader/issues/55
2017-11-03 02:36:01 +00:00
},
transformToRequire: {
video: 'src',
source: 'src',
object: 'src',
embed: 'src'
2017-08-14 14:03:07 +00:00
}
2016-11-07 01:34:58 +00:00
}
2017-06-15 22:19:53 +00:00
// Return the config
return config
2016-11-07 01:34:58 +00:00
}