浏览器主动打开的题目
当前我们运行项目的时候,浏览器不会主动打开的;
设置项目,让浏览器主动打开;
package.json
pnpm run dev运行项目的;
修改为下面的设置:
加上了--open设置项;
确实是主动打开了,方便;
eslint校验工具的设置
代码检测工具,快10年了;
插件化的,检测你的代码质量写的高不高;
安装eslint
老娘安装的效果如上;
生成eslint的设置文件
告诉eslint,你应该怎么工作;
老子运行的效果如上所示;
老娘运行的效果如上所示;
排错线
我推测错误还是和我的npm代理有关系的。
那么我就要设置npm的代理:
然后再次运行下令,如许就成功了:
生成eslint的设置文件
你要用eslint做什么呀?
检查语法、发现错误;我们选择第二个;
你的项目接纳什么样的模块式开辟?
我们肯定是第一个;
你的项目是什么框架,我们肯定是vue;
你是不是要用ts?
我们是yes
你的项目运行在浏览器还是node?
我们选择第一个;
我给你创建什么范例的设置文件?
我们选择JS
你使用eslint去校验vue和ts语法,要安装上面的三个插件;
eslint-plugin-vue
typescript-eslint:校验
typescript-eslint/parser:分析器
你是不是要现在安装呢?
我们选择yes
你用什么包管理工具下载呢?
我们用pnpm;
在这里,老娘执行的时候,发现还有一个新的包管理工具,叫做bun;
这就是安装完毕了;
老娘执行完毕就是上面的效果;
eslint的设置文件
项目当中就多了,如许一个.eslint.cjs的设置文件;
老娘这里的设置文件是eslint.cofnig.js。
这就是eslint工作的说明书;
.eslint.cjs设置文件(老子)
module.exports这是对外袒露的设置对象;
这是有7个设置项
运行环境
规则继续
检验代码时候用了规则;
函数有没有重名,对象有没有重名的key,校验语句的分号,这都是有一点规则的,要参照官网看;
规则继续,会开启保举规则,可以参考官网;
特定文件校验
比如说,要校验markdown,就可以这里设置;
指定分析器
假如你了解webpack,了解babel,这就是分析器;可以将es6语法转换成为es5,让兼容性更好;
分析器一共有三种:
- Esprima:默认分析器
- Babel-ESLint:bable分析器
- @typescript-eslint/parser:ts分析器
分析器选项
插件
你会发现插件名字是不一样的,我们安装的插件,名字叫做eslint-plugin-vue,但是在设置文件当中就是显示一个vue,这说明了什么?
说明eslint中插件的前缀可以省略,前缀就是eslint-plugin
重要:规则设置
这是最重要的部分,我们是必要参考esint的官网;
其他的设置项可以不消记忆;
eslint.config.js设置文件(老娘)
我生成的eslint.config.js文件当中的设置是下面的样子:
- export default [
- {files: ["**/*.{js,mjs,cjs,ts,vue}"]},
- {languageOptions: { globals: globals.browser }},
- pluginJs.configs.recommended,
- ...tseslint.configs.recommended,
- ...pluginVue.configs["flat/essential"],
- {files: ["**/*.vue"], languageOptions: {parserOptions: {parser: tseslint.parser}}},
- ];
复制代码 下面是这段 ESLint 设置代码的逐行解释:
这一行表示这个文件默认导出一个数组,这个数组包含了多个 ESLint 设置对象或设置引用。
export default 是 ES6 的模块导出语法,它指定了当其他文件导入这个模块时、默认获取的内容。
- {files: ["**/*.{js,mjs,cjs,ts,vue}"]},
复制代码 这一行定义了一个设置对象,它指定了 ESLint 应该检查哪些文件。
files 属性包含了一个数组,数组中的字符串是一个 glob 模式,它匹配了项目中所有的 .js、.mjs、.cjs、.ts 和 .vue 文件。
这意味着 ESLint 将对这些文件范例举行检查。
- {languageOptions: { globals: globals.browser }},
复制代码 这一行定义了一个设置对象,用于设置语言选项。
在这里,languageOptions 属性被用来指定全局变量。
globals 属性被设置为 globals.browser,这通常是一个对象,包含了在浏览器环境中可用的全局变量。
如许设置可以避免 ESLint 将这些全局变量误报为未定义。
必要注意的是,globals.browser 应该在设置文件的上下文或外部被定义,否则这里会导致引用错误。
- pluginJs.configs.recommended,
复制代码 这一行引用了名为 pluginJs 的插件中的 recommended 设置。
这通常意味着包含了一组保举的规则,用于检查 JavaScript 代码的质量和风格。
pluginJs 应该是之前在项目中安装和设置的 ESLint 插件。
- ...tseslint.configs.recommended,
复制代码 这一行使用了扩展操作符 ... 来展开 tseslint.configs.recommended 设置数组。
tseslint 可能是一个用于 TypeScript 文件的 ESLint 插件,而 recommended 设置通常包含了一组针对 TypeScript 的保举规则。
如许,这些保举规则就会被添加到当前的设置数组中。
- ...pluginVue.configs["flat/essential"],
复制代码 雷同地,这一行展开了 pluginVue.configs["flat/essential"] 设置数组。
pluginVue 应该是针对 Vue.js 文件的 ESLint 插件,
而 "flat/essential" 可能是该插件提供的一种特定设置模式,包含了一组针对 Vue.js 的根本或焦点规则。
- {files: ["**/*.vue"], languageOptions: {parserOptions: {parser: tseslint.parser}}},
复制代码 这一行定义了一个专门针对 .vue 文件的设置对象。
files 属性指定了只匹配 .vue 文件。
languageOptions 属性中的 parserOptions 指定了用于分析这些文件的分析器,这里设置为 tseslint.parser,意味着使用 tseslint 插件提供的分析器来分析 Vue 文件中的代码。
这确保了 TypeScript 语法在 Vue 单文件组件中的正确分析和检查。
这一行表示设置数组的竣事。
安装vue3环境代码校验插件
- pnpm install -D eslint-plugin-import eslint-plugin-vue eslint-plugin-node eslint-plugin-prettier eslint-config-prettier eslint-plugin-node @babel/eslint-parser
复制代码 老娘运行结果如下:
这说明了一个题目,这说的意思是,老娘安装的eslint版本是9.11.1这个版本太高了;
修改eslint.config.js设置文件
下面是老小子提供的.eslint.cjs的设置文件。
- // @see https://eslint.bootcss.com/docs/rules/
- module.exports = {
- env: {
- browser: true,
- es2021: true,
- node: true,
- jest: true,
- },
- /* 指定如何解析语法 */
- parser: 'vue-eslint-parser',
- /* 优先级低于 parse 的语法解析配置 */
- parserOptions: {
- ecmaVersion: 'latest',
- sourceType: 'module',
- parser: '@typescript-eslint/parser',
- jsxPragma: 'React',
- ecmaFeatures: {
- jsx: true,
- },
- },
- /* 继承已有的规则 */
- extends: [
- 'eslint:recommended',
- 'plugin:vue/vue3-essential',
- 'plugin:@typescript-eslint/recommended',
- 'plugin:prettier/recommended',
- ],
- plugins: ['vue', '@typescript-eslint'],
- /*
- * "off" 或 0 ==> 关闭规则
- * "warn" 或 1 ==> 打开的规则作为警告(不影响代码执行)
- * "error" 或 2 ==> 规则作为一个错误(代码不能执行,界面报错)
- */
- rules: {
- // eslint(https://eslint.bootcss.com/docs/rules/)
- 'no-var': 'error', //要求使用let或const而不是var
- 'no-multiple-empty-lines': ['warn', {max: 1}], //不允许多个空行
- 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
- 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
- 'no-unexpected-multiline': 'error', //禁止空余的多行
- 'no-useless-escape': 'off', //禁止不必要的转义字符
- // typeScript (https://typescript-eslint.io/rules)
- '@typescript-eslint/no-unused-vars': 'error', // 禁止定义未使用的变量
- '@typescript-eslint/prefer-ts-expect-error': 'error', // 禁止使用 @ts-ignore
- '@typescript-eslint/no-explicit-any': 'off', // 禁止使用any类型
- '@typescript-eslint/no-non-null-assertion': 'off',
- '@typescript-eslint/no-namespace': 'off', // 禁止使用自定义 TypeScript模块和命名空间。
- '@typescript-eslint/semi': 'off',
- // eslint-plugin-vue (https://eslint.vuejs.org/rules/)
- 'vue/multi-word-component-names': 'off', // 要求组件名称始终为"-"连接的单词
- 'vue/script-setup-uses-vars': 'error', // 防止<script setup>使用的变量<template>被标记为未使用
- 'vue/no-mutating-props': 'off', // 不允许组件prop的改变
- 'vue/attribute-hyphenation': 'off', // 对模板中的自定义组件强制执行属性命名样式
- },
- }
复制代码 我直接将.eslintrc.cjs中的代码,就是上面的代码,复制粘贴到了eslint.config.js中;

假如我直接复制的代码的话,会出现上面的报错,以是我将文件名字也从eslint.config.js修改成为了.eslintrc.cjs
eslintignore
设置哪些目次内里的文件,是不必要eslint校验的。
- dist文件夹是我们打包之后的文件夹的。
- node_modules不消说了,不必要校验的。
新建一个.eslintignore文件,然后举行设置。
运行脚本
运行这个指令的时候,让eslint去校验src目次下的文件当中的语法;
fix就是修复的意思。
测试一下:
在eslint的规则当中有一条是不允许使用var的。如上图,我们测试下。
很多人都会以为eslint好恶心的;
下意识就会想要关闭eslint。
但是建议写项目时候,还是开着eslint,如许代码质量会高一些;
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |