mpvue-webpack4-loader
Version:
mpvue single-file component loader for Webpack
26 lines (23 loc) • 1.01 kB
JavaScript
// this is a utility loader that takes a *.vue file, parses it and returns
// the requested language block, e.g. the content inside <template>, for
// further processing.
var path = require('path')
var parse = require('./parser')
var loaderUtils = require('loader-utils')
var { defaultPart } = require('./mp-compiler/util')
var compilerContext = require('./context')
module.exports = function (content) {
this.cacheable()
compilerContext.setContext(this)
var compilerOptions = compilerContext.getOptions()
var query = loaderUtils.getOptions(this) || {}
var context = (this._compiler && this._compiler.context) || compilerOptions.context || process.cwd()
var filename = path.relative(context, this.resourcePath).replace(/\..+$/, '.vue')
var parts = parse(content, filename, this.sourceMap)
var part = parts[query.type]
if (Array.isArray(part)) {
part = part[query.index]
}
part = part || defaultPart('style')
this.callback(null, part.content, part.map)
}