uni-app Vue语法校验

发布于 1周前 作者 eggper 来自 Uni-App

uni-app Vue语法校验

vue语法校验需要安装eslint-plugins-vue插件

插件安装完成后,进入【插件配置】,即可找到刚才安装插件。它的对应的配置文件是.eslintrc.js,选项对应说明如下:

module.exports = {  
    "extends": "plugin:vue/essential",  
    "parserOptions": {},      
    "rules": {}             //规则  
};

更多配置说明可以参考options

规则简介

官方规则列表

规则设置:

  • "off"0 - 关闭规则
  • "warn"1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出)
  • "error"2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出)

增加或修改vue校验规则

修改.eslintrc.js文件,添加规则,比如:

module.exports = {  
    "extends": "plugin:vue/base",  
    parserOptions: {  
        ecmaVersion: 2017,  
        sourceType: 'module'  
    },  
    "rules":{  
        //在computed properties中禁用异步actions  
        'vue/no-async-in-computed-properties': 'error',  
        //不允许重复的keys  
        'vue/no-dupe-keys': 'error',  
        //不允许重复的attributes  
        'vue/no-duplicate-attributes': 'error',  
        //在 `<template>` 标签下不允许解析错误  
        'vue/no-parsing-error': ['error',{  
            'x-invalid-end-tag': false,  
        }],  
        //不允许覆盖保留关键字  
        'vue/no-reserved-keys': 'error',  
        //强制data必须是一个带返回值的函数  
        // 'vue/no-shared-component-data': 'error',  
        //不允许在computed properties中出现副作用。  
        'vue/no-side-effects-in-computed-properties': 'error',  
        //`<template>`不允许key属性  
        'vue/no-template-key': 'error',  
        //在 `<textarea>` 中不允许mustaches  
        'vue/no-textarea-mustache': 'error',  
        //不允许在v-for或者范围内的属性出现未使用的变量定义  
        'vue/no-unused-vars': 'error',  
        //`<component>`标签需要v-bind:is属性  
        'vue/require-component-is': 'error',  
        // render 函数必须有一个返回值  
        'vue/require-render-return': 'error',  
        //保证 v-bind:key 和 v-for 指令成对出现  
        'vue/require-v-for-key': 'error',  
        // 检查默认的prop值是否有效  
        'vue/require-valid-default-prop': 'error',  
        // 保证computed属性中有return语句   
        'vue/return-in-computed-property': 'error',  
        // 强制校验 template 根节点  
        'vue/valid-template-root': 'error',  
        // 强制校验 v-bind 指令  
        'vue/valid-v-bind': 'error',  
        // 强制校验 v-cloak 指令  
        'vue/valid-v-cloak': 'error',  
        // 强制校验 v-else-if 指令  
        'vue/valid-v-else-if': 'error',  
        // 强制校验 v-else 指令   
        'vue/valid-v-else': 'error',  
        // 强制校验 v-for 指令  
        'vue/valid-v-for': 'error',  
        // 强制校验 v-html 指令  
        'vue/valid-v-html': 'error',  
        // 强制校验 v-if 指令  
        'vue/valid-v-if': 'error',  
        // 强制校验 v-model 指令  
        'vue/valid-v-model': 'error',  
        // 强制校验 v-on 指令  
        'vue/valid-v-on': 'error',  
        // 强制校验 v-once 指令  
        'vue/valid-v-once': 'error',  
        // 强制校验 v-pre 指令  
        'vue/valid-v-pre': 'error',  
        // 强制校验 v-show 指令  
        'vue/valid-v-show': 'error',  
        // 强制校验 v-text 指令  
        'vue/valid-v-text': 'error'  
    }  
};

1 回复

在uni-app中使用Vue语法时,为了确保代码质量和减少潜在的错误,进行语法校验是一个非常重要的步骤。uni-app支持多种方式来进行Vue语法校验,通常我们会结合ESLint和Vetur等插件来实现。

以下是一个基本的配置示例,展示了如何在uni-app项目中设置Vue语法校验。

1. 安装ESLint和相关插件

首先,你需要确保你的项目中已经安装了ESLint。如果还没有安装,可以通过npm进行安装:

npm install eslint --save-dev

同时,为了支持Vue文件的校验,你需要安装eslint-plugin-vue

npm install eslint-plugin-vue --save-dev

2. 配置ESLint

在你的项目根目录下创建一个.eslintrc.js文件,并添加以下配置:

module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: [
    'plugin:vue/essential', // 使用官方推荐的vue规则集
    'eslint:recommended', // 使用eslint推荐的规则集
  ],
  parserOptions: {
    parser: 'babel-eslint', // 使用babel-eslint作为解析器
  },
  rules: {
    // 你可以在这里自定义规则
    'vue/no-multiple-template-root': 'off', // 允许在<template>中有多个根节点(uni-app特有)
  },
};

3. 配置Vetur(如果你使用的是VSCode)

如果你使用的是VSCode编辑器,Vetur插件可以大大增强Vue文件的开发体验。确保你已经安装了Vetur插件,并在VSCode的设置中启用ESLint校验:

// settings.json
{
  "vetur.validation.template": true,
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "vue"
  ],
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  }
}

4. 示例代码

以下是一个简单的Vue组件示例,展示了如何在uni-app中使用Vue语法,并确保ESLint能够对其进行校验:

<template>
  <view class="container">
    <text>{{ message }}</text>
  </view>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello, uni-app with Vue syntax validation!',
    };
  },
};
</script>

<style scoped>
.container {
  padding: 20px;
}
</style>

通过上述配置,你的uni-app项目中的Vue文件将能够享受到ESLint提供的语法校验功能,从而提高代码质量和开发效率。

回到顶部