vuejs / vue-cli

🛠️ webpack-based tooling for Vue.js Development
https://cli.vuejs.org/
MIT License
29.76k stars 6.33k forks source link

extendConfig: Remove undefined properties #3058

Closed TitanFighter closed 5 years ago

TitanFighter commented 5 years ago

Version

3.2.1

Reproduction link

http://no.link

Environment info

  System:
    OS: Linux 4.15 Ubuntu 18.04.1 LTS (Bionic Beaver)
    CPU: (4) x64 Intel(R) Core(TM) i5 CPU       M 430  @ 2.27GHz
  Binaries:
    Node: 10.14.0 - /usr/bin/node
    Yarn: Not Found
    npm: 6.4.1 - /usr/local/bin/npm
  Browsers:
    Chrome: 70.0.3538.110
    Firefox: 63.0.3
  npmPackages:
    @vue/babel-preset-app:  3.2.0 
    @vue/cli-overlay:  3.2.0 
    @vue/cli-plugin-babel: ^3.2.0 => 3.2.0 
    @vue/cli-plugin-eslint: ^3.2.0 => 3.2.1 
    @vue/cli-plugin-pwa: ^3.2.0 => 3.2.0 
    @vue/cli-service: ^3.2.0 => 3.2.0 
    @vue/cli-shared-utils:  3.2.0 
    @vue/component-compiler-utils:  2.3.0 
    @vue/eslint-config-standard: ^4.0.0 => 4.0.0 
    @vue/preload-webpack-plugin:  1.1.0 
    @vue/web-component-wrapper:  1.2.0 
    babel-helper-vue-jsx-merge-props:  2.0.3 
    babel-plugin-transform-vue-jsx:  4.0.1 
    bootstrap-vue: ^2.0.0-rc.11 => 2.0.0-rc.11 
    eslint-plugin-vue: ^5.0.0-0 => 5.0.0-beta.5 
    vue: ^2.5.17 => 2.5.17 
    vue-apollo: ^3.0.0-beta.11 => 3.0.0-beta.26 
    vue-cli-plugin-apollo: ^0.18.1 => 0.18.1 
    vue-eslint-parser:  2.0.3 
    vue-functional-data-merge:  2.0.7 
    vue-hot-reload-api:  2.3.1 
    vue-loader:  15.4.2 
    vue-router: ^3.0.1 => 3.0.2 
    vue-style-loader:  4.1.2 
    vue-template-compiler: ^2.5.17 => 2.5.17 
    vue-template-es2015-compiler:  1.6.0 
    vue-youtube: ^1.3.0 => 1.3.0 
    vuedraggable: ^2.17.0 => 2.17.0 
    vuex: ^3.0.1 => 3.0.1 
    vuex-persistedstate: ^2.5.4 => 2.5.4 
  npmGlobalPackages:
    @vue/cli: 3.2.1

Steps to reproduce

  1. Create a project with ESLint.
  2. Run vue ui
  3. Select Configuration
  4. Select ESLint configuration
  5. Change an item in Select config.
  6. Click Save changes.
  7. Check vue.config.js file -> you will see lintOnSave: undefined

What is expected?

lintOnSave must be either true or false

What is actually happening?

lintOnSave is undefined

Akryum commented 5 years ago

This is actually an improvement that can be made in our extendConfig utility which should remove the properties set to undefined.