91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • vue?eslint報錯:Component?name?“xxxxx“?should?always?be?multi-word.eslintvue如何解決

vue?eslint報錯:Component?name?“xxxxx“?should?always?be?multi-word.eslintvue如何解決

發布時間:2022-07-27 13:53:46 來源:億速云 閱讀:622 作者:iii 欄目:開發技術

這篇文章主要介紹“vue eslint報錯:Component name “xxxxx“ should always be multi-word.eslintvue如何解決”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“vue eslint報錯:Component name “xxxxx“ should always be multi-word.eslintvue如何解決”文章能幫助大家解決問題。

    報錯代碼

    vue-cli全新創建項目,并建立組件時提示報錯,報錯如下:

    vscode標紅提示:

    Component name "index" should always be multi-word.eslintvue/multi-word-component-names

    npm run serve / yarn serve報錯:

     ERROR  Failed to compile with 1 error                                                                                                                                                      下午6:02:08


    C:\Users\wally\Desktop\vscode\vue\seal\seal_web\src\views\home\index.vue
      1:1  error  Component name "index" should always be multi-word  vue/multi-word-component-names

    ? 1 problem (1 error, 0 warnings)


    You may use special comments to disable some warnings.
    Use // eslint-disable-next-line to ignore the next line.
    Use /* eslint-disable */ to ignore all warnings in a file.
    ERROR in 
    C:\Users\wally\Desktop\vscode\vue\seal\seal_web\src\views\home\index.vue
      1:1  error  Component name "index" should always be multi-word  vue/multi-word-component-names

    ? 1 problem (1 error, 0 warnings)


    webpack compiled with 1 error

    原因

    新手在組件命名的時候不夠規范,根據官方風格指南,除了根組件(App.vue)外,自定義組件名稱應該由多單詞組成,防止和html標簽沖突。

    而最新的vue-cli創建的項目使用了最新的vue/cli-plugin-eslint插件,在vue/cli-plugin-eslint v7.20.0版本之后就引用了vue/multi-word-component-names規則,所以在編譯的時候判定此次錯誤。

    解決方案

    方案一

    改名

    修改組件名為多個單詞,使用大駝峰命名方式或者用“-”連接單詞。但是有時候因為個別原因不能改名,此方案不好使,看下面兩個方案。

    方案二:

    關閉校驗

    在根目錄下找到vue.config.js文件(如果沒有則新建一個),添加下面的代碼

    lintOnSave: false

    添加后文件示例:

    const { defineConfig } = require('@vue/cli-service')
    module.exports = defineConfig({
      transpileDependencies: true,
      //關閉eslint校驗
      lintOnSave: false
    })

    此方案治標不治本,只是編譯時不報錯,如果使用vscode+eslint 會在文件頭標紅提示,強迫癥根本忍受不了,并且官方并不建議直接關閉校驗,所以推薦使用方案三

    方案三(推薦)

    關閉命名規則校驗

    在根目錄下找到 .eslintrc.js 文件,同樣如果沒有則新建一個(注意文件前有個點),代碼如下

    添加一行:

        "vue/multi-word-component-names":"off",

    文件內容:

    module.exports = {
      root: true,
      env: {
        node: true
      },
      'extends': [
        'plugin:vue/essential',
        'eslint:recommended'
      ],
      parserOptions: {
        parser: '@babel/eslint-parser'
      },
      rules: {
        'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
        'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
         //在rules中添加自定義規則
         //關閉組件命名規則
         "vue/multi-word-component-names":"off",
      },
      overrides: [
        {
          files: [
            '**/__tests__/*.{j,t}s?(x)',
            '**/tests/unit/**/*.spec.{j,t}s?(x)'
          ],
          env: {
            jest: true
          }
        }
      ]
    }

    以上是關閉命名規則,將不會校驗組件名,官方建議設置是根據組件名進行忽略

    忽略個別組件名

    // 添加組件命名忽略規則
        "vue/multi-word-component-names": ["error",{
           "ignores": ["index"]//需要忽略的組件名
        }]

    方案四(推薦):

    方案三是關閉和忽略組件名規則,但是有時候還是需要團隊有個共同規范,不能關閉,同時文件名可能和組件名不一致時,例如我需要每個頁面入口為index.vue,但是組件名為MyHome,用忽略組件名的方式可能需要同時添加index和MyHome,就顯得很傻瓜。或者我需要路由組件忽略,非路由組件不忽略,那如何在這種情況下修改規則更好用呢?因此我找到了第四種方式。方案三是根據組件名忽略,此方案是根據文件進行關閉規則,更適用。

    關閉某文件命名規則校驗

    在根目錄下找到 .eslintrc.js 文件,同樣如果沒有則新建一個(注意文件前有個點),代碼如下

    在文件的overrides中添加如下代碼:

    {  
     files: ['src/views/index.vue','src/views/**/index.vue'],   // 匹配views和二級目錄中的index.vue
     rules: {
     'vue/multi-word-component-names':"off",
     } //給上面匹配的文件指定規則
    }

    其中的 files: [] 是用于匹配文件的,*號代表所有文件。index.vue也可以改成 *.vue,這就是匹配目錄下的所有vue文件

    文件內容:

    module.exports = {
      root: true,
      env: {
        node: true
      },
      'extends': [
        'plugin:vue/essential',
        'eslint:recommended'
      ],
      parserOptions: {
        parser: '@babel/eslint-parser'
      },
      rules: {
        'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
        'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
      },
      overrides: [
            //這里是添加的代碼
            { 
              files: ['src/views/index.vue','src/views/**/index.vue'],   // 匹配views和二級目錄中的index.vue
              rules: {
              'vue/multi-word-component-names':"off",
              } //給上面匹配的文件指定規則
            },
        {
          files: [
            '**/__tests__/*.{j,t}s?(x)',
            '**/tests/unit/**/*.spec.{j,t}s?(x)'
          ],
          env: {
            jest: true
          }
        }
      ]
    }

    其實和方案三基本一致,只是放的位置不同

    關于“vue eslint報錯:Component name “xxxxx“ should always be multi-word.eslintvue如何解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    田阳县| 那曲县| 奉节县| 庆云县| 武宁县| 九江市| 兰坪| 区。| 汝南县| 武强县| 德钦县| 休宁县| 辰溪县| 太湖县| 奎屯市| 利辛县| 丘北县| 凤山市| 武穴市| 织金县| 贵德县| 台安县| 都昌县| 滁州市| 玉环县| 运城市| 基隆市| 昭苏县| 修武县| 射阳县| 任丘市| 玉树县| 东山县| 台北市| 石门县| 黄浦区| 印江| 兴化市| 隆子县| 阿合奇县| 莲花县|