Vue: Mit "Whitespace:" Condense "enthalten Elemente nur Elemente und Leerzeichen werden zu leeren Tags komprimiert

Erstellt am 6. Sept. 2019  ·  6Kommentare  ·  Quelle: vuejs/vue

Ausführung

4.0.0-rc.1

Reproduktionslink

https://github.com/tobyzerner/vue-cli-nbsp-bug

Umgebungsinformationen

Environment Info:
  System:
    OS: macOS 10.14.6
    CPU: (4) x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
  Binaries:
    Node: 10.15.3 - /usr/local/bin/node
    Yarn: 1.17.3 - ~/.npm-global/bin/yarn
    npm: 6.11.3 - ~/.npm-global/bin/npm
  Browsers:
    Chrome: 76.0.3809.132
    Firefox: 68.0.2
    Safari: 12.1.2
  npmPackages:
    @vue/babel-helper-vue-jsx-merge-props:  1.0.0
    @vue/babel-plugin-transform-vue-jsx:  1.0.0
    @vue/babel-preset-app:  4.0.0-rc.1
    @vue/babel-preset-jsx:  1.1.0
    @vue/babel-sugar-functional-vue:  1.0.0
    @vue/babel-sugar-inject-h:  1.0.0
    @vue/babel-sugar-v-model:  1.0.0
    @vue/babel-sugar-v-on:  1.1.0
    @vue/cli-overlay:  4.0.0-rc.1
    @vue/cli-plugin-babel: ^4.0.0-rc.1 => 4.0.0-rc.1
    @vue/cli-plugin-eslint: ^4.0.0-rc.1 => 4.0.0-rc.1
    @vue/cli-service: ^4.0.0-rc.1 => 4.0.0-rc.1
    @vue/cli-shared-utils:  4.0.0-rc.1
    @vue/component-compiler-utils:  3.0.0
    @vue/preload-webpack-plugin:  1.1.1
    @vue/web-component-wrapper:  1.2.0
    eslint-plugin-vue: ^5.0.0 => 5.2.3
    vue: ^2.6.10 => 2.6.10
    vue-eslint-parser:  5.0.0
    vue-hot-reload-api:  2.3.3
    vue-loader:  15.7.1
    vue-style-loader:  4.1.2
    vue-template-compiler: ^2.6.10 => 2.6.10
    vue-template-es2015-compiler:  1.9.1
  npmGlobalPackages:
    @vue/cli: 4.0.0-rc.1

Schritte zum Reproduzieren

Klonen Sie das Repo, npm install && npm run serve

Was wird erwartet?

Die Vorlage enthält eine Spanne mit einem   -Zeichen. Diese Spanne hat einen roten Hintergrund. Daher sollte auf der Seite ein kleines rotes Kästchen angezeigt werden.

Was passiert eigentlich?

Das   in der Vorlage wird ignoriert und in einen normalen Bereich konvertiert, was bedeutet, dass das span-Element nicht angezeigt wird.


Ich kann diesen Fehler weder in einer einfachen Vue-Jsfiddle noch in einem Projekt mit Vue-Loader ohne Vue-Cli replizieren. Daher denke ich, dass etwas in vue-cli eher der Schuldige als der vue-template-compiler oder Vue selbst sein kann.

bug compiler has PR

Hilfreichster Kommentar

Ich habe dieses Problem in das Repository vue da ich glaube, dass es sich um einen Fehler handelt, der in https://github.com/vuejs/vue/commit/e1abedb9e66b21da8a7e93e175b9dabe334dfebd eingeführt wurde

Einen weiteren Fehlerbericht finden Sie unter https://github.com/vuejs/vue/issues/9208#issuecomment -477811927

Aktuelle Problemumgehung:

// vue.config.js
module.exports = {
  chainWebpack: config => {
    config.module
      .rule('vue')
        .use('vue-loader')
          .tap(args => {
            args.compilerOptions.whitespace = 'preserve'
          })
  }
}

Alle 6 Kommentare

Ich habe dieses Problem in das Repository vue da ich glaube, dass es sich um einen Fehler handelt, der in https://github.com/vuejs/vue/commit/e1abedb9e66b21da8a7e93e175b9dabe334dfebd eingeführt wurde

Einen weiteren Fehlerbericht finden Sie unter https://github.com/vuejs/vue/issues/9208#issuecomment -477811927

Aktuelle Problemumgehung:

// vue.config.js
module.exports = {
  chainWebpack: config => {
    config.module
      .rule('vue')
        .use('vue-loader')
          .tap(args => {
            args.compilerOptions.whitespace = 'preserve'
          })
  }
}

Wäre es möglich, auch Haarräume (   ) zu ignorieren?

_edit: Entschuldigung, habe das Problem link_ nicht gesehen

@naton wie erwähnt, sollte dies im vue repo besprochen werden. Sodatea hat das Problem verknüpft

@ LinusBorg ist das nicht das Vue Repo? Das verknüpfte Problem ist die ursprüngliche Änderung zum Hinzufügen von "Verdichtung", nicht wahr? Es ist auch geschlossen.

Wir sind heute gerade darauf gestoßen und versuchen herauszufinden, wie wir es umgehen können. Wir haben eine Lokalisierungsautomatisierung eingebaut, die die Einstellung "Verdichten" voraussetzt (basierend auf Evans Vorschlag, dass dies in 3.x Standard sein würde und weil ich mit dem Verdichtungsverhalten einverstanden bin). Daher ist es schwierig, einfach zurück zu tauschen, um es ohne mögliche Nebenwirkungen zu erhalten.

Ok, es scheint, dass einfach nicht die nbsp enthalten; innerhalb eines Elements allein löst das Problem. Fügen Sie dies als Notiz für alle anderen hinzu, die darauf stoßen.

Ich habe dieses Problem in das Repository vue da ich glaube, dass es sich um einen in e1abedb eingeführten

Siehe einen weiteren Fehlerbericht unter # 9208 (Kommentar)

Aktuelle Problemumgehung:

// vue.config.js
module.exports = {
  chainWebpack: config => {
    config.module
      .rule('vue')
        .use('vue-loader')
          .tap(args => {
            args.compilerOptions.whitespace = 'preserve'
          })
  }
}

Dies scheint mit Vue 3 nicht mehr zu funktionieren, es wird der Fehler "TypeError: Eigenschaft 'Leerzeichen' von undefined kann nicht festgelegt werden" ausgelöst. Gibt es eine Problemumgehung für Vue 3?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

hiendv picture hiendv  ·  3Kommentare

paceband picture paceband  ·  3Kommentare

seemsindie picture seemsindie  ·  3Kommentare

guan6 picture guan6  ·  3Kommentare

bdedardel picture bdedardel  ·  3Kommentare