这个脚手架的优点完整的开发环境,nodejs+git+typeScript+ESLint+Prettier+etc在nodejs中使用typeScript在nodejs中使用import语法更改代码并自动重启node服务器自动编译打包ts成js文件以koa2为要构建的示例您可以访问任何您喜欢的nodejs框架(expess、koa...)。提前准备0.确保在搭建环境中安装了node.js、git和typeScript。因为本教程使用yarn搭建,所以还需要安装yarn,或者使用relativenpm命令查看节点版本node-v→v16.3.0检测tsc版本(使用npx命令)npxtsc--version→v4。4.4os:windows编辑器:vscode搭建nodejs开发环境1、新建文件夹,打开mkdirnodecdnode2。初始化gitgitinit新建一个.gitignore,根据自己的喜好设置git忽略文件内容或者团队规范root=true[*.{js,ts,json}]indent_size=2charset=utf-8indent_style=spacetrim_trailing_whitespace=trueinsert_final_newline=真4。初始化package.jsonyarninit项目设置可以根据实际情况填写{"name":"node","version":"1.0.0","main":"index.js","license":"MIT》}一般到这里,最基本的nodejs开发环境就搭建好了,接下来就是添加typescriptnodejs+typescript开发环境设置5.typescript依赖安装安装typeScript基础依赖包yarnadd-Dtypescript@types/node6.初始化tsconfig.jsonnpxtsc--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环境,新建文件夹srcmkdirsrc,在src新建index.ts,下面是index.ts,非常非常简单的typescript语句constmsg:string='HelloWorld'console。log(msg)如果编译typescriptnpxtsc成功,会在dist文件中生成一个index.js,内容如下很明显,ts变成了js"usestrict";constmsg='你好世界';console.log(msg);//#sourceMappingURL=app.js.map使用node命令执行index.jsnodedist/index.js→HelloWorld开发执行脚本配置8.安装依赖安装ts-node-dev和npm-run-allyarnadd-Dts-node-devnpm-run-allts-node-dev:开发依赖,开发时自动将ts编译成js并重启node服务器npm-run-all:一条命令执行多个脚本命令9.配置package.json脚本"main":"dist/index.js",...省略"scripts":{"dev":"ts-node-dev--respawnsrc/index.ts","resetFolder":"rimrafdist/*","compile":"tsc","build":"npm-run-allresetFoldercompile","start":"node."},dev:用于开发,运行节点服务器,代码更改后自动重启节点服务器,--respawn是命令选项,自动重启,必须resetFolder:清除dist文件夹compile:编译typescriptbuild:清理dist文件夹和包启动:运行nodejs脚本到这一步,最基本的typescript+nodejs开发环境搭建完成,大家可以试试运行上面的命令ESLint+Prettier10。初始化配置eslint安装eslint依赖yarnadd-Deslinttypescript@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,项目:['./tsconfig.json'],},插件:['@typescript-eslint'],extends:['eslint:recommended','plugin:@typescript-eslint/recommended','plugin:@typescript-eslint/recommended-requiring-type-checking',],}导入eslint后.eslintrc.js会报如下错误Parsingerror:"parserOptions.project"hasbeensetfor@typescript-eslint/parser。这是由于eslintinspection是用ts检查配置造成的,详见这里。为了解决问题,在tsconfig.json中添加".eslintrc.js"...omit"include":[".eslintrc.js","src"],...Omittryingtoexecuteeslintnpxeslintsrc/索引.ts11。初始化配置prettierprettier依赖yarnadd-Dprettiereslint-config-prettier新建一个.prettierjs文件,根据自己的喜好编写配置module.exports={semi:false,tabWidth:2,printWidth:120,proseWrap:'preserve',singleQuote:true,trailingComma:'all',}in.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',},...如果在vscode中省略设置保存和整理代码,适当修改后可以看到prettier至此,typeScript+nodejs+eslint+prettier的开发环境搭建完成。下面将以koa.js为例。其实你也可以使用自己喜欢的nodejs框架,比如express.js来集成koa.js12。初始化koayarnaddkoarewriteindex.tsimportKoafrom'koa'constapp=newKoa()constmsg:string='HelloWorld'app.use(async(ctx:Koa.Context):Promise
