3
const path = require('path')
4
const config = require('../config')
5
const ExtractTextPlugin = require('extract-text-webpack-plugin')
7
exports.assetsPath = function (_path) {
8
const assetsSubDirectory = process.env.NODE_ENV === 'production'
9
? config.build.assetsSubDirectory
10
: config.dev.assetsSubDirectory
11
return path.posix.join(assetsSubDirectory, _path)
14
exports.cssLoaders = function (options) {
15
options = options || {}
20
minimize: process.env.NODE_ENV === 'production',
21
sourceMap: options.sourceMap
26
function generateLoaders (loader, loaderOptions) {
27
const loaders = [cssLoader]
30
loader: loader + '-loader',
31
options: Object.assign({}, loaderOptions, {
32
sourceMap: options.sourceMap
39
if (options.extract) {
40
return ExtractTextPlugin.extract({
42
fallback: 'vue-style-loader'
45
return ['vue-style-loader'].concat(loaders)
51
css: generateLoaders(),
52
postcss: generateLoaders(),
53
less: generateLoaders('less'),
54
sass: generateLoaders('sass', { indentedSyntax: true }),
55
scss: generateLoaders('sass'),
56
stylus: generateLoaders('stylus'),
57
styl: generateLoaders('stylus')
62
exports.styleLoaders = function (options) {
64
const loaders = exports.cssLoaders(options)
65
for (const extension in loaders) {
66
const loader = loaders[extension]
68
test: new RegExp('\\.' + extension + '$'),