此脚手架劣势
- 残缺的开发环境,nodejs+git+typeScript+ESLint+Prettier+etc
- 在nodejs中应用typeScript
- 在nodejs中应用import语法
- 更改代码后主动重启node服务器
- 主动编译打包为ts为js文件
- 以koa2为例构建
- 能够接入任何你喜爱的nodejs框架(expess,koa…)
事先筹备
0.构建环境
确定曾经装置了node.js,git以及typeScript
因为本教程应用yarn构建,所以还须要装置yarn,或者应用绝对的npm命令
查看node版本
node -v
→ v16.3.0
检测tsc版本(应用npx命令)
npx tsc --version
→ v4.4.4
os: windows
编辑器: vs code
搭建nodejs开发环境
1.新建文件夹并关上
mkdir node
cd node
2.初始化git
git init
新建.gitignore,设置git疏忽文件
内容依据本人的爱好
node_modules
.DS_Store
dist
*.local
*.code-workspace
.vscode
3.初始化editorconfig
新建.editorconfig,设置编辑器和ide标准
内容依据本人的爱好或者团队标准
root = true
[*.{js,ts,json}]
indent_size = 2
charset = utf-8
indent_style = space
trim_trailing_whitespace = true
insert_final_newline = true
4.初始化package.json
yarn init
我的项目设定依据理论状况填写即可
{
"name": "node",
"version": "1.0.0",
"main": "index.js",
"license": "MIT"
}
个别到这一步,最根本的nodejs开发环境就搭建完了
下一步开始追加typescript
nodejs+typescript开发环境搭建
5.typescript依赖装置
装置typeScript的根底依赖包
yarn add -D typescript @types/node
6.初始化tsconfig.json
npx tsc --init
初始化生成的tsconfig.json含有许多备注
如果嫌麻烦能够间接应用上面的模板
我的项目设定依据理论状况填写即可
{
"compilerOptions": {
"target": "esnext",
"module": "commonjs",
"sourceMap": true,
"outDir": "./dist",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src"],
"exclude": ["node_modules", "dist", "public"]
}
这里须要留神一下
outDir: 是编译后文件搁置的文件夹
include: 是须要查看哪的文件来编译
exclude: 是不须要查看哪的文件来编译
7.确认typescript环境
新建文件夹src
mkdir src
并且在src内新建index.ts
上面是index.ts,极其极其简略的typescript语句
const msg: string = 'Hello World'
console.log(msg)
编译typescript
npx tsc
胜利的话,这时会在dist文件内生成一个index.js,内容如下
很显然,ts变成了js
"use strict";
const msg = 'Hello World';
console.log(msg);
//# sourceMappingURL=app.js.map
应用node命令执行index.js
node dist/index.js
→ Hello World
开发执行脚本配置
8.装置依赖
装置ts-node-dev和npm-run-all
yarn add -D ts-node-dev npm-run-all
ts-node-dev:开发用依赖,开发时主动编译ts为js并重启node服务器
npm-run-all:一个命令来执行一个以上的脚本命令
9.配置package.json脚本
"main": "dist/index.js",
...省略
"scripts": {
"dev": "ts-node-dev --respawn src/index.ts",
"resetFolder": "rimraf dist/*",
"compile": "tsc",
"build": "npm-run-all resetFolder compile",
"start": "node ."
},
dev:开发的时候用,运行node服务器,随同代码更改主动重启node服务器,–respawn是命令选项,主动重启,必须
resetFolder:清空dist文件夹
compile:编译typescript
build:清理dist文件夹并打包
start:运行nodejs脚本
到这一步,最根本的typescript+nodejs开发环境就搭建完了
能够试着运行一下下面的命令
ESLint + Prettier
10.初始化并配置eslint
装置eslint依赖
yarn add -D eslint typescript @typescript-eslint/parser @typescript-eslint/eslint-plugin
新建.eslintrc.js文件并写入配置
也能够应用eslint –init生成,但这里不便起见间接复制粘贴了
module.exports = {
root: true,
env: {
node: true,
es2021: true,
},
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaVersion: 12,
sourceType: 'module',
tsconfigRootDir: __dirname,
project: ['./tsconfig.json'],
},
plugins: ['@typescript-eslint'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking',
],
}
导入了eslint后,.eslintrc.js会呈现如下报错
Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser.
这是因为eslint检查和ts查看配置造成的,详见这里
为了解决问题,在tsconfig.json中退出”.eslintrc.js”
...省略
"include": [ ".eslintrc.js","src"],
...省略
尝试执行eslint
npx eslint src/index.ts
11.初始化并配置prettier
prettier依赖
yarn add -D prettier eslint-config-prettier
新建.prettierjs文件并写入配置
依据本人的爱好
module.exports = {
semi: false,
tabWidth: 2,
printWidth: 120,
proseWrap: 'preserve',
singleQuote: true,
trailingComma: 'all',
}
在.eslintrc.js集成prettier
...省略
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking',
'prettier',
'prettier/@typescript-eslint',
],
rules: {
'prettier/prettier': 'error',
},
...省略
在vs code设置了保留并整顿代码的话,适当批改并保留就能够看到prettier成果了
至此,typeScript+nodejs+eslint+prettier的开发环境就曾经搭建完结了
上面将以koa.js为例,实际上你也能够应用你喜爱的nodejs框架,比方express.js等
集成koa.js
12.初始化koa
yarn add koa
改写index.ts
import Koa from 'koa'
const app = new Koa()
const msg: string = 'Hello World'
app.use(async (ctx: Koa.Context): Promise<void> => {
ctx.body = msg
})
app.listen(7000)
此时会报一些找不到申明文件的谬误,所以须要进行下一步,追加申明文件
13.装置koa类型申明文件
yarn add -D @types/koa
找不到申明文件的谬误被胜利打消
如果今后你要应用路由等koa插件,也须要同时装置该插件的申明文件
14.运行
这时koa.js的集成也曾经实现
运行yarn dev并拜访http://localhost:7000
yarn dev
能够发现运行胜利,页面上有Hello World
15.打包
运行yarn build会发现dist外面的index.js文件
typeScript曾经全都被转换为(不意识的)js文件了
yarn build
到这里typeScript+koa2+eslint+prettier的开发环境就曾经齐全搭建完结了
最初
附赠上残缺package.json文件
{
"name": "node",
"version": "1.0.0",
"main": "dist/index.js",
"license": "MIT",
"scripts": {
"dev": "ts-node-dev --respawn src/index.ts",
"resetFolder": "rimraf dist/*",
"compile": "tsc",
"build": "npm-run-all resetFolder compile",
"start": "node ."
},
"dependencies": {
"koa": "^2.13.4"
},
"devDependencies": {
"@types/koa": "^2.13.4",
"@types/node": "^17.0.16",
"@typescript-eslint/eslint-plugin": "^5.11.0",
"@typescript-eslint/parser": "^5.11.0",
"eslint": "^8.8.0",
"eslint-config-prettier": "^8.3.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.5.1",
"ts-node-dev": "^1.1.8",
"typescript": "^4.5.5"
}
}
发表回复