Vue: `рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк: 'рдХрдВрдбреЗрдиреНрд╕' рдХреЗ рд╕рд╛рде, рддрддреНрд╡реЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдШрдиреАрднреВрдд рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рд╕рд┐рддре░ 2019  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vuejs/vue

рд╕рдВрд╕реНрдХрд░рдг

4.0.0-рдЖрд░рд╕реА 1

рдкреНрд░рдЬрдирди рд▓рд┐рдВрдХ

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

рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА

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

рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛

рд░реЗрдкреЛ рдХреНрд▓реЛрди, npm install && npm run serve

рдХреНрдпрд╛ рдЙрдореНрдореАрдж рд╣реИ?

рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдПрдХ   рд╡рд░реНрдг рд╡рд╛рд▓рд╛ рд╕реНрдкреИрди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдкреИрди рдореЗрдВ рд▓рд╛рд▓ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЖрдкрдХреЛ рдкреГрд╖реНрда рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рд▓рд╛рд▓ рдмреЙрдХреНрд╕ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ   рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд╛рди рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕реНрдкреИрди рддрддреНрд╡ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдореИрдВ рдЗрд╕ рдмрдЧ рдХреЛ рдПрдХ рд╕рд╛рджреЗ Vue jsfiddle рдореЗрдВ рдирд╣реАрдВ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛, рдФрд░ рди рд╣реА vue-cli рдХреЗ рдмрд┐рдирд╛ vue-loader рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ vue-cli рдореЗрдВ рдХреБрдЫ vue-template-compiler рдпрд╛ Vue рдХреЗ рдмрдЬрд╛рдп рдЕрдкрд░рд╛рдзреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

bug compiler has PR

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ vue рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ https://github.com/vuejs/vue/commit/e1abedb9e66b21da8a7e93e175b9dabe334dfebd рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрдЧ рд╣реИ

Https://github.com/vuejs/vue/issues/9208#issuecomment -477811927 рдкрд░ рдПрдХ рдФрд░ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦреЗрдВ

рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди:

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

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ vue рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ https://github.com/vuejs/vue/commit/e1abedb9e66b21da8a7e93e175b9dabe334dfebd рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрдЧ рд╣реИ

Https://github.com/vuejs/vue/issues/9208#issuecomment -477811927 рдкрд░ рдПрдХ рдФрд░ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦреЗрдВ

рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди:

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

рдХреНрдпрд╛ рд╣реЗрдпрд░рд╕реНрдкреЗрд╕ (   ) рдХреЛ рднреА рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ ..?

_edit: рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд▓рд┐рдВрдХ_

@ рдиреЛрдЯрди рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рд╕реЛрдбрд╛рдбрд┐рдпрд╛ рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЬреЛрдбрд╝рд╛

@LinusBorg рдпрд╣ Vue рд░реЗрдкреЛ рдирд╣реАрдВ рд╣реИ? рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ 'рдХрдВрдбреЗрдВрд╕' рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХреНрдпрд╛ рдпрд╣ рдирд╣реАрдВ рд╣реИ? рдпрд╣ рднреА рдмрдВрдж рд╣реИред

рд╣рдо рдмрд╕ рдЖрдЬ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдЧрдП рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╣рдордиреЗ рдХреБрдЫ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рди рдореЗрдВ рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ 'рдХрдВрдбреЗрдирд╕' рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдорд╛рдирддрд╛ рд╣реИ (рдЗрд╡рд╛рди рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐ рдпрд╣ 3.x рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдЧрд╛ рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╕рдВрдХреНрд╖реЗрдкрдг рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ)ред рддреЛ рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рджреБрд╖реНрдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд╕реНрд╡реИрдк рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред

рдареАрдХ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╕ nbsp рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ; рдХрд┐рд╕реА рддрддреНрд╡ рдХреЗ рдЕрдВрджрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЬреЛ рдЗрд╕рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ vue рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ e1abedb рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрдЧ рд╣реИ

# 9208 рдкрд░ рдПрдХ рдФрд░ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦреЗрдВ

рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди:

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

рдпрд╣ Vue 3 рдХреЗ рд╕рд╛рде рдЕрдм рдФрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ: "TypeError: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рд╕рдВрдкрддреНрддрд┐ 'рд╡реНрд╣реЙрдЯреНрд╕рдПрдк рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛"ред Vue 3 рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕