前言
现代化的工程项目搭建,已经不仅仅满足于可以用了,更多要求规范使用。为实现这已目的,项目搭建离不开Typescript、Eslint、prettier的配置。
Nodejs项目搭建
执行npm init -y
命令生产package.json
文件
Typescript
- 安装
typescript
执行命令npm install typescript --save-dev
- 安装
@types/node
执行命令npm install @types/node --save-dev
- 生成
tsconfig.json
文件
执行命令npx tsc --init
,常见配置见tsconfig配置1
2
3
4
5
6
7
8
9
10
11{
"compilerOptions": {
...
"rootDir": "./src", // 读取ts文件根目录
"outDir": "./dist", // 生成js文件路径
"removeComments": true, // 生成js文件时移除注释
...
}
"include": ["src"],
"exclude": ["node_modules"]
} - 安装
ts-node
执行命令npm install ts-node --save-dev
, ts-node可以运行时解析ts
文件,无需转换成js运行。 - 配置
nodemon
新建nodemon.json
文件1
2
3
4
5
6{
"watch": ["src"],
"ext": ".ts,.js",
"ignore": [],
"exec": "ts-node ./src/index.ts"
}package.json
中配置scripts
命令1
2
3
4
5"build": "tsc",
"prestart": "npm run build",
"start": "node ./dist/index.js",
"start:dev": "nodemon",
"lint": "eslint . --ext .js,.ts"
Eslint
- 初始化
Eslint
执行命令npx eslint --init
,然后根据自己需求选择配置 - 配置
.eslintrc.js
文件.eslintrc.js
文件是配置文件,如果某些想忽略,可以新建文件.eslintignor
,写入想要忽略的文件路径
prettier
- 安装依赖
执行命令npm install eslint-config-prettier eslint-plugin-prettier --save-dev
安装 eslint-config-prettier、eslint-plugin-prettier即可 - 修改
.eslintrc.js
文件1
2
3
4
5
6
7extends: [..., 'plugin:prettier/recommended'],
overrides: [],
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: './tsconfig.json',
}, - 常见
prettier
配置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33module.exports = {
// 1.一行代码的最大字符数,默认是80(printWidth: <int>)
printWidth: 80,
// 2.tab宽度为2空格(tabWidth: <int>)
tabWidth: 2,
// 3.是否使用tab来缩进,我们使用空格(useTabs: <bool>)
useTabs: false,
// 4.结尾是否添加分号,false的情况下只会在一些导致ASI错误的其工况下在开头加分号,我选择无分号结尾的风格(semi: <bool>)
semi: false,
// 5.使用单引号(singleQuote: <bool>)
singleQuote: true,
// 6.object对象中key值是否加引号(quoteProps: "<as-needed|consistent|preserve>")as-needed只有在需求要的情况下加引号,consistent是有一个需要引号就统一加,preserve是保留用户输入的引号
quoteProps: 'as-needed',
// 7.在jsx文件中的引号需要单独设置(jsxSingleQuote: <bool>)
jsxSingleQuote: false,
// 8.尾部逗号设置,es5是尾部逗号兼容es5,none就是没有尾部逗号,all是指所有可能的情况,需要node8和es2017以上的环境。(trailingComma: "<es5|none|all>")
trailingComma: 'es5',
// 9.object对象里面的key和value值和括号间的空格(bracketSpacing: <bool>)
bracketSpacing: true,
// 10.jsx标签多行属性写法时,尖括号是否另起一行(jsxBracketSameLine: <bool>)
jsxBracketSameLine: false,
// 11.箭头函数单个参数的情况是否省略括号,默认always是总是带括号(arrowParens: "<always|avoid>")
arrowParens: 'always',
// 12.range是format执行的范围,可以选执行一个文件的一部分,默认的设置是整个文件(rangeStart: <int> rangeEnd: <int>)
rangeStart: 0,
rangeEnd: Infinity,
// 18. vue script和style标签中是否缩进,开启可能会破坏编辑器的代码折叠
vueIndentScriptAndStyle: false,
// 19. endOfLine: "<lf|crlf|cr|auto>" 行尾换行符,默认是lf,
endOfLine: 'lf',
// 20.embeddedLanguageFormatting: "off",默认是auto,控制被引号包裹的代码是否进行格式化
embeddedLanguageFormatting: 'off',
}
文档资料
原文链接: http://yunzaifei.github.io/2022/12/27/Nodejs项目配置Typescript-Eslint-prettier等/
版权声明: 转载请注明出处.