123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- var path = require('path')
- var config = require('../config')
- var sass = require('sass')
- var MiniCssExtractPlugin = require('mini-css-extract-plugin')
- exports.assetsPath = function (_path) {
- var assetsSubDirectory = process.env.NODE_ENV === 'production'
- ? config.build.assetsSubDirectory
- : config.dev.assetsSubDirectory
- return path.posix.join(assetsSubDirectory, _path)
- }
- exports.cssLoaders = function (options) {
- options = options || {}
- function generateLoaders (loaders) {
- // Extract CSS when that option is specified
- // (which is the case during production build)
- if (options.extract) {
- return [MiniCssExtractPlugin.loader].concat(loaders)
- } else {
- return ['vue-style-loader'].concat(loaders)
- }
- }
- // http://vuejs.github.io/vue-loader/configurations/extract-css.html
- return [
- {
- test: /\.(post)?css$/,
- use: generateLoaders(['css-loader', 'postcss-loader']),
- },
- {
- test: /\.less$/,
- use: generateLoaders(['css-loader', 'postcss-loader', 'less-loader']),
- },
- {
- test: /\.sass$/,
- use: generateLoaders([
- 'css-loader',
- 'postcss-loader',
- {
- loader: 'sass-loader',
- options: {
- indentedSyntax: true
- }
- }
- ])
- },
- {
- test: /\.scss$/,
- use: generateLoaders(['css-loader', 'postcss-loader', 'sass-loader'])
- },
- {
- test: /\.styl(us)?$/,
- use: generateLoaders(['css-loader', 'postcss-loader', 'stylus-loader']),
- },
- ]
- }
- // Generate loaders for standalone style files (outside of .vue)
- exports.styleLoaders = function (options) {
- return exports.cssLoaders(options)
- }
|