为微信小程序项目添加eslint

news2025/2/26 23:10:45

背景

在使用vscode开发微信小程序的过程中,修改js的时候发现没有报错提示,让我很不习惯,所以想为微信小程序项目添加eslint配置

编码实战

为微信小程序配置ESLint可以遵循以下步骤:

安装ESLint及其相关插件

首先,确保你的项目已经初始化了npmyarn。如果没有,可以在项目根目录运行以下命令:

npm init -y

接下来,安装ESLint及其必要的插件可以通过以下命令安装:

npm install eslint @babel/core @babel/eslint-parser --save-dev

创建ESLint配置文件

如果未使用交互式初始化,手动创建.eslintrc.js(或.eslintrc.json, .eslintrc.yml)文件,并配置如下内容:

// .eslintrc.js 示例
// .eslintrc.js 示例
module.exports = {
  env: {
    browser: true,
    es6: true
  },
  extends: ["eslint:recommended"],
  globals: {
    wx: "writable", // 全局变量wx,微信小程序的API对象
    App: "writable", // 全局函数App
    Page: "writable", // 全局函数Page
    Component: "writable", // 全局函数Component
    getApp: "writable", // 全局函数
    Behavior: "writable", // 全局函数
    module: "writable"
  },
  parser: "@babel/eslint-parser", // 或其他适合的解析器
  parserOptions: {
    ecmaVersion: 2022,
    sourceType: "module",
    requireConfigFile: false // 如果你没有babel配置文件,可以设为false
  },
  plugins: [],
  rules: {
    // 自定义规则,根据需要添加或覆盖默认规则
    // 警告使用console.log,避免在生产环境中滥用
    "no-console": "warn",
    // 错误提示未使用的变量,但忽略形如 `_` 开头的参数(通常用作占位)
    "no-unused-vars": ["error", { argsIgnorePattern: "^_" }],

    // 代码风格
    // 错误提示,强制使用2个空格进行缩进
    indent: ["error", 2],
    // 警告提示,推荐使用双引号
    quotes: ["warn", "double"],
    // 错误提示,要求语句末尾必须有分号
    semi: ["error", "always"],
    // 错误提示,禁止对象或数组最后一个元素后面有逗号
    "comma-dangle": ["error", "never"],

    // 提高代码质量
    // 错误提示,强制使用全等比较
    eqeqeq: "error",
    // 错误提示,禁止使用debugger语句
    "no-debugger": "error",
    // 错误提示,禁止使用未定义的变量
    "no-undef": "error",
    // 错误提示,允许函数在定义前声明,但不允许变量在定义前使用
    "no-use-before-define": ["error", { functions: false }],
    // 错误提示,防止变量被意外重定义导致的阴影效应
    "no-shadow": "error",

    // 可能的错误
    // 错误提示,禁止不可到达的代码,如 return 后的语句
    "no-unreachable": "error",

    // ES6+特性
    // 错误提示,推荐使用模板字符串
    "prefer-template": "error",
    // 错误提示,根据情况决定箭头函数体是否使用大括号,提高代码简洁性
    "arrow-body-style": ["error", "as-needed"],
    // 错误提示,推荐使用const代替let,增强代码的不变性
    "prefer-const": "error",
    // 错误提示,推荐解构赋值以简化代码(对象解构开启,数组解构关闭)
    "prefer-destructuring": ["error", { array: false, object: true }],

    // 可读性和简洁性
    // 警告提示,限制每行代码的最大长度为120字符,增强代码可读性
    "max-len": ["warn", { code: 120 }],
    // 错误提示,强制使用驼峰命名法命名变量和函数
    camelcase: "error"
  }
};

集成到编辑器

如果你使用的是VSCode或其他支持ESLint的编辑器,确保安装了ESLint插件,并配置为使用项目根目录下的.eslintrc.js

检查ESLint是否正常运行

在vscoe中打开一个js文件,鼠标移动到右下角的JavaScript左边的"{}"图标上,正常运行的情况如下图所示:在这里插入图片描述
不正常的情况如下图:
在这里插入图片描述
点击"Open Eslint Output ",查看报错日志,根据报错信息一一处理,常见的报错可能有:ESLint、解析器以及其他相关插件的版本之间兼容。有时高版本的ESLint可能与旧项目不兼容,需要降级或升级其他依赖以匹配;eslint配置中使用了错误的配置项;

添加代码格式化设置(建议)

为了更好搭配我们的eslint,在项目根目录新建.prettierrc.js

module.exports = {
  printWidth: 120, // 调整以匹配ESLint中的"max-len"规则(120字符)
  tabWidth: 2, // 与两者配置一致
  useTabs: false, // 添加此行以明确使用空格而非制表符,与普遍代码风格一致
  semi: true, // 与ESLint配置中"semi"规则保持一致,即在语句末尾添加分号
  singleQuote: false, // 调整以匹配ESLint配置中的"quotes"规则(使用双引号)
  trailingComma: 'none', // 调整以匹配ESLint配置中的"comma-dangle"规则(禁止末尾逗号)
  arrowParens: 'avoid', // 调整以与ESLint配置中的倾向相匹配,特别是在"arrow-body-style"规则暗示的按需使用圆括号
  bracketSpacing: true, // 保持默认,与多数风格指南一致
  jsxBracketSameLine: false, // 默认设置,可根据具体需求调整
  endOfLine: 'lf', // 维持跨平台兼容性,默认或依据项目规范
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1841676.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

F611V36 SOT23-6 4.2V 气压检测和充放电三合一咪头专用芯片-昱灿

F911 是一款咪头专用芯片,集成涓流、恒流、恒压三段式充电管理,符合锂电池充电规范。充电输入可直接从USB口取电,充电电流默认530mA。 集成 50mΩ 的放电 MOS 开关,无需外部MOS,大大降低BOM成本。内置MOS导通PWM控制&a…

Hydra常用爆破命令

常用破解命令 SSH 破解 hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip ssh hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip sshFTP 破解 hydra ftp://ip -l 用户名 -P 密码字典 -t 线程(默认16) -vV hydra ftp://ip -l 用户名 -P 密码字典 -e ns -vVWeb 登陆…

Linux根目录挂载点(/dev/mapper/centos-root)扩容

如果我们在安装系统是采用自定义分区的话,就可以提前规划好这个事情。但是如果平常没注意就直接采用默认安装的方式的话。一旦 根目录的容量耗尽,将会影响业务的运行。今天我们来扩容逻辑卷。 默认安装的话会给home目录分比较多的空间,我们可…

闲置资源共享平台

摘 要 随着共享经济的高速发展以及人们对物品的需求方面也越来也丰富,而且各大高校的大学生们的购买力也越来越强,随之而来的问题就是身边的闲置资源也越来越多,但是也有许多的大学生对物品的要求方面不是很高,也愿意买下经济实惠…

kimi+的+能为论文写作+出什么?我帮你试过了!

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 Kimi是月之暗面科技有限公司开发的个性化智能助手功能。相比kimi,Kimi能够提供个性化定制服务,根据用户特定需求提供更专业深入的辅助,实现一对一的智…

国内出版社数字化资源的现状与挑战:一场未充分利用的数字转型

**概述:**在当前数字化高速发展的时代背景下,国内教育出版社在数字化资源的开发与应用上面临着诸多挑战和不足。本文将针对读者提出的问题和反馈,探讨国内教育出版社数字化资源存在的问题,并分析可能的原因和改进方向。 **正文&a…

数据资产:打破数据孤岛,实现数据互联互通,构建企业智能化转型的重要桥梁。通过高效整合与利用数据资源,推动企业决策的科学化、精准化,助力企业迈向智能化新时代

目录 一、引言 二、数据孤岛现象及其影响 三、打破数据孤岛,实现数据互联互通 1、制定统一的数据标准和管理规范 2、建设统一的数据平台 3、推广数据共享和开放文化 四、数据资产在智能化转型中的重要作用 1、推动企业决策的科学化、精准化 2、优化企业运营…

【ARM】MDK在debug模式下断点的类型

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 了解不同情况下,设置的断点的类型是什么。 2、 问题场景 在debug模式下,经常通过断点去调试代码。但是对于断点的类型不了解,不清楚断点为什么会被进入。不了解在不同语句或者情…

本科且非专业学历|艺术自由职业者成功赴美国威斯康星大学麦迪逊分校自费访学

R老师只有本科学历且不是艺术专业,但有独创的艺术作品,其希望在一年的访问学者期间,拓宽艺术视野,同时学习艺术理论,以弥补学术背景薄弱的短板。最终我们为其落实了美国威斯康星大学麦迪逊分校访问学者职位。 R老师背景…

使用lua开发apisix自定义插件并发布

接到老大需求:需要对cookie进行操作,遂查询apisix的自带插件,发现有,但不满足,于是自己开发了一个插件并部署,把开发部署流程写在这里打个日志怕以后忘掉。 一、需求 插件很简单,就是在reques…

Ethena 更新代币经济学,逼着空投用户作长期 Hodler?

撰文:Yangz,Techub News 本文来源香港Web3媒体Techub News 6 月 18 日,Ethena 更新代币经济学,计划在 Ethena 生态和即将推出的 Ethena Chain 中引入通用再质押机制,并对任何通过空投获得 ENA 的用户实施「锁定」要求…

泽攸科普——电镜的检测标准及检测方法有哪些?

电镜是指利用电子束取代可见光束来观察和成像的仪器,包括扫描电镜(SEM)、透射电镜(TEM)和透射扫描电镜(STEM)等。它们的检测标准和方法各有不同,具体如下: 1、扫描电镜&…

探索强化学习(人工智能重要子领域):原理、算法及应用

引言 人工智能(Artificial Intelligence, AI)作为一个广泛的领域,旨在使机器具备模仿或超越人类智能的能力。机器学习(Machine Learning, ML)是实现这一目标的重要手段,通过数据驱动的方法,使机…

mysql学习——SQL中的DDL和DML

SQL中的DDL和DML DDL数据库操作:表操作 DML添加数据修改数据删除数据 学习黑马MySQL课程,记录笔记,用于复习。 DDL DDL:Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表&…

2024年6月抖音最新引流模板 7天300w流量打法 不做烂大街的玩法

在这个信息爆炸的时代,抖音作为全球最大的短视频平台,吸引了亿万用户的关注。然而,如何在如此庞大的用户群中脱颖而出,让你的内容被更多人看到呢?本文将向你介绍2024年抖音最新的引流模板,帮助你的新号流量…

3GPP R18冻结,哪些信息值得关注?

这两天网上到处都是R18冻结的新闻,小枣君也凑个热闹,聊聊这个话题。 首先给小白科普一下,所谓的R18,全称是Release-18。它是通信国际标准组织3GPP(第三代合作伙伴计划)所推出协议标准的一个版本。 自从1998…

热门开源项目vuetify框架推荐

热门开源项目推荐 Vuetify是Vue.js的一个语义化组件框架,旨在提供整洁、语义化和可重用的组件,使得构建Vue.js应用程序更加便捷。以下是关于Vuetify的使用方法的简要概述: 1. Vuetify的特点 语义化:Vuetify充分利用Vue.js的功能…

MeshAnything:艺术家级别的自回归3D网格生成

MeshAnything: Artist-Created Mesh Generation with Autoregressive Transformers 📜 文献卡 MeshAnything: Artist-Created Mesh Generation with Autoregressive Transformers作者: Yiwen Chen; Tong He; Di Huang; Weicai Ye; Sijin Chen; Jiaxiang Tang; Xin…

守护系统稳定性的关键技术之看门狗

目录 一、独立看门狗 二、窗口看门狗 三、总结 看门狗定时器(Watchdog Timer,WDT)是嵌入式系统中至关重要的组件,用于监控和维护系统的稳定性。主要是用来监测单片机运行状态和解决程序引起的故障的模块。在由单片机构成的微型…

Python酷库之旅-比翼双飞情侣库(18)

目录 一、xlwt库的由来 1、背景和需求 2、项目启动 3、功能特点 4、版本兼容性 5、与其他库的关系 6、示例和应用 7、发展历史 二、xlwt库优缺点 1、优点 1-1、简单易用 1-2、功能丰富 1-3、兼容旧版Excel 1-4、社区支持 1-5、稳定性 2、缺点 2-1、不支持.xls…