参考选项

Webpack 1 & 2的不同使用之处

对 Webpack 2: 将选项直接传递到加载器规则。

  1. module.exports = {
  2. // ...
  3. module: {
  4. rules: [
  5. {
  6. test: /\.vue$/,
  7. loader: 'vue-loader',
  8. options: {
  9. // vue-loader options
  10. }
  11. }
  12. ]
  13. }
  14. }

对 Webpack 1.x: 在你的webpack配置文件中添加一个根 vue 模块。

  1. module.exports = {
  2. // ...
  3. vue: {
  4. // vue-loader options
  5. }
  6. }

loaders

  • type: { [lang: string]: string }

    指定Webpack加载器以覆盖用于*.vue文件中的语言块的默认加载器的对象。该键对应于语言块的lang属性,如果指定的话。 每种类型的默认`lang’是:

    • <template>: html
    • <script>: js
    • <style>: css

    例如,使用babel-loadereslint-loader来处理所有<script>块:

    1. // Webpack 2.x config
    2. module: {
    3. rules: [
    4. {
    5. test: /\.vue$/,
    6. loader: 'vue-loader',
    7. options: {
    8. loaders: {
    9. js: 'babel-loader!eslint-loader'
    10. }
    11. }
    12. }
    13. ]
    14. }

预处理

  • type: { [lang: string]: string }
  • 仅在 >=10.3.0 被支持

    配置格式与“loaders”相同,但是“preLoaders”应用于默认加载器之前的相应语言块。 您可以使用它来预处理语言块 - 一个常见的用例是构建时间i18n。

postLoaders

  • type: { [lang: string]: string }
  • 仅在 >=10.3.0 被支持

    配置格式与loaders相同,但是postLoaders应用于默认加载器之后。 您可以使用它来后处理语言块。 但是请注意,这有点复杂:

    • 对于html,默认加载器返回的结果将是编译的JavaScript渲染函数代码。

    • 对于css,结果将由vue-style-loader返回,这在大多数情况下不是特别有用。 使用postcss插件将是一个更好的选择。

postcss

  • type: ArrayFunctionObject

    指定要应用于* .vue文件中的CSS的自定义PostCSS插件。 如果使用函数,函数将使用相同的加载器上下文调用,并应返回一个插件数组。

    1. // ...
    2. vue: {
    3. // 注意:不要在`loaders`下嵌入`postcss`选项
    4. postcss: [require('postcss-cssnext')()],
    5. loaders: {
    6. // ...
    7. }
    8. }

    此选项也可以是包含要传递到PostCSS处理器的选项的对象。 这在使用依赖于自定义解析器/字符串的PostCSS项目时非常有用:

    1. postcss: {
    2. plugins: [...], // list of plugins
    3. options: {
    4. parser: sugarss // use sugarss parser
    5. }
    6. }

cssSourceMap

  • type: Boolean
  • default: true

    是否为CSS启用源映射。禁用这个设置可以在`css-loader’避免一些相对路径相关的错误,并使构建更快一点。

    注意,如果主要的Webpack配置中没有出现devtool选项,则自动设置为false

esModule

  • type: Boolean
  • default: undefined

    是否提交esModule兼容代码。默认情况下,vue-loader将以commonjs格式提交默认导出,如module.exports = …..当esModule设置为true时,默认导出将转换为导出。exports = ….用于与转换器互操作而不是Babel,如TypeScript。

preserveWhitespace

  • type: Boolean
  • default: true

    如果设置为false,模板中HTML标记之间的空格将被忽略。

transformToRequire

  • type: { [tag: string]: string | Array<string> }
  • default: { img: 'src', image: 'xlink:href' }

    在模板编译期间,编译器可以将某些属性(如srcURL)转换为require调用,以便目标资源可以由Webpack处理。 默认配置转换<img>标签上的src属性和SVG的<image>标签上的xlink:href属性。

buble

  • type: Object
  • default: {}

    配置buble-loader(如果存在)的选项,以及模板渲染函数的buble编译。

    版本说明:在版本9.x中,模板表达式通过现在删除的templateBuble选项单独配置。

    模板渲染函数编译支持一个特殊的变换stripWith(默认启用),它删除生成的渲染函数中的with用法,使它们兼容严格模式。

    示例配置:

    1. // webpack 1
    2. vue: {
    3. buble: {
    4. //启用对象展开运算符
    5. //注意:你需要自己提供Object.assign polyfill!
    6. objectAssign: 'Object.assign',
    7. // turn off the `with` removal
    8. transforms: {
    9. stripWith: false
    10. }
    11. }
    12. }
    13. // webpack 2
    14. module: {
    15. rules: [
    16. {
    17. test: /\.vue$/,
    18. loader: 'vue-loader',
    19. options: {
    20. buble: {
    21. // same options
    22. }
    23. }
    24. }
    25. ]
    26. }