For Webpack 1.x: add a root vue
block in your Webpack config:
module.exports = {
// ...
vue: {
// vue-loader options
}
}
For Webpack 2 (^2.1.0-beta.25):
module.exports = {
// ...
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
// vue-loader options
}
}
]
}
}
-
type:
Object
An object specifying Webpack loaders to use for language blocks inside
*.vue
files. The key corresponds to thelang
attribute for language blocks, if specified. The defaultlang
for each type is:<template>
:html
<script>
:js
<style>
:css
For example, to use
babel-loader
andeslint-loader
to process all<script>
blocks:// ... vue: { loaders: { js: 'babel!eslint' } }
-
type:
Array
orFunction
orObject
-
Object
format only supported in ^8.5.0Specify custom PostCSS plugins to be applied to CSS inside
*.vue
files. If using a function, the function will called using the same loader context and should return an Array of plugins.// ... vue: { // note: do not nest the `postcss` option under `loaders` postcss: [require('postcss-cssnext')()], loaders: { // ... } }
This option can also be an object that contains options to be passed to the PostCSS processor. This is useful when you are using PostCSS projects that relies on custom parser/stringifiers:
postcss: { plugins: [...], // list of plugins options: { parser: sugarss // use sugarss parser } }
-
type:
Boolean
-
default:
true
Whether to enable source maps for CSS. Disabling this can avoid some relative path related bugs in
css-loader
and make the build a bit faster.Note this is automatically set to
false
if thedevtool
option is not present in the main Webpack config.
-
type:
Boolean
-
default:
undefined
Whether to emit esModule compatible code. By default vue-loader will emit default export in commonjs format like
module.exports = ....
. WhenesModule
is set to true, default export will be transpiled intoexports.__esModule = true; exports = ...
. Useful for interoperating with transpiler other than Babel, like TypeScript.
-
type:
Boolean
-
default:
true
If set to
false
, the whitespaces between HTML tags in templates will be ignored.
-
type:
{ [tag: string]: string | Array<string> }
-
default:
{ img: 'src' }
During template compilation, the compiler can transform certain attributes, such as
src
URLs, intorequire
calls, so that the target asset can be handled by Webpack. The default config transforms thesrc
attribute on<img>
tags.
-
type:
Object
-
default:
{}
Configure options for
buble-loader
(if present), AND the buble compilation pass for template render functions.version note: in version 9.x, the template expressions are configured separately via the now removed
templateBuble
option.The template render functions compilation supports a special transform
stripWith
(enabled by default), which removes thewith
usage in generated render functions to make them strict-mode compliant.Example configuration:
// webpack 1 vue: { buble: { // enable object spread operator // NOTE: you need to provide Object.assign polyfill yourself! objectAssign: 'Object.assign', // turn off the `with` removal transforms: { stripWith: false } } } // webpack 2 module: { rules: [ { test: /\.vue$/, loader: 'vue-loader', options: { buble: { // same options } } } ] }