为什么要捐赠
API 资源管理器
升级指南
NEW!
quasar.config 文件
转换为使用 Webpack 的 CLI
浏览器兼容性
支持 TypeScript
目录结构
命令列表
CSS 预处理器
路由
延迟加载 - 代码分割
处理资源
启动文件
预取功能
API 代理
处理 Webpack
处理 process.env
使用 Pinia 进行状态管理
使用 Vuex 进行状态管理
代码校验
测试和审计
开发移动应用
AJAX 请求
公开开发服务器
Quasar CLI 带 Webpack - @quasar/app-webpack
ESLint

强烈建议使用代码 linter(如 ESLint)以确保代码的可读性。它还能帮助您在运行代码之前捕获一些错误。

当您搭建 Quasar 项目文件夹时,它会询问您是否需要 linter 以及您想要为 ESLint 使用哪种设置

将创建两个点文件

  • .eslintrc.cjs – ESLint 配置,包括规则
  • .eslintignore – ESLint 在 linting 时应忽略的内容

可以进一步扩展上述 Eslint 设置中的一个。默认情况下,您的项目将使用 eslint-plugin-vue 处理您的 Vue 文件。请快速查看 .eslintrc.cjs 并注意它

extends: [
  // https://eslint.vuejs.ac.cn/rules/#priority-a-essential-error-prevention-for-vue-js-3-x
  // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
  'plugin:vue/strongly-recommended'
]

如果您在创建项目文件夹时选择了 ESLint,您还会注意到 /quasar.config 文件为您将 eslint-loader 添加到 Webpack 配置中

build: {
  chainWebpack (chain) {
    chain.plugin('eslint-webpack-plugin')
      .use(ESLintPlugin, [{ extensions: [ 'js', 'vue' ] }])
  }
}

Lint 规则

可以移除、更改或添加 linting 规则。请注意一些事项

  • 一些规则用于 Standard、Airbnb 或 Prettier 标准(您在创建项目时选择的标准)。例如:‘brace-style’。
  • 一些规则用于 eslint-plugin-vue。例如:‘vue/max-attributes-per-line’。

您可以先访问 https://eslint.org.cn/docs/rules/https://eslint.vuejs.ac.cn/rules 来添加/移除/更改规则。

以下是 ESLint 规则的示例

/.eslintrc.cjs

'rules': {
  'brace-style': [2, 'stroustrup', { 'allowSingleLine': true }],

  'vue/max-attributes-per-line': 0,
  'vue/valid-v-for': 0,

  // allow async-await
  'generator-star-spacing': 'off',

  // allow paren-less arrow functions
  'arrow-parens': 0,
  'one-var': 0,

  'import/first': 0,
  'import/named': 2,
  'import/namespace': 2,
  'import/default': 2,
  'import/export': 2,
  'import/extensions': 0,
  'import/no-unresolved': 0,
  'import/no-extraneous-dependencies': 0,

  // allow debugger during development
  'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
}

禁用 Linter

为了以后禁用 ESLint,您只需从 /quasar.config 文件中注释掉(或删除)以下代码

build: {
  chainWebpack (chain) {
    /*
     * we comment out this block
     *
    chain.plugin('eslint-webpack-plugin')
      .use(ESLintPlugin, [{ extensions: [ 'js', 'vue' ] }])
    */
  }
}