视频地址:https://www.bilibili.com/video...如有疑问,请扫描视频中的QQ群二维码进行交流。另外,我正在找工作。希望有远程工作匹配(不能去其他地方),有需要的老板可以看看我的个人介绍:pincman.com/about注:为了照顾大部分用户,本教程使用远程SSH连接Debian服务器进行讲解,同时也会进行讲解MacOS命令,Windows本地开发者请安装wsl2作为备选学习目标安装配置node.js+pnpm环境配置tsconfig.json+eslint+prettier实现代码标准化配置vscode实现调试并保存代码时自动运行eslint+prettier配置lanunch.json用于应用调试安装ThunderClient插件用于接口调试环境搭建安装配置node.js环境MacOS请使用brew安装,如果你还没有安装brew,请先安装建议:GLOBALManager安装的都用一个包,我用pnpm安装node.js#下载并解压node~sudowgethttps://nodejs.org/dist/v18.4.0/node-v18.4.0-linux-x64.tar.xz-O/usr/local/src/node18.tar.xz~sudotar-xf/usr/local/src/node18.tar.xz-C/usr/local/~sudomv/usr/local/node-v18.4.0-linux-x64/usr/local/node#添加到环境变量echo"exportPATH=/usr/local/node/bin:\$PATH">>~/.zshrc&&source~/.zshrc配置npm淘宝镜像~npmconfigsetregistryhttps://registry.npmmirror.com/安装pnpm并初始化pnpm~npminstall-gpnpm~pnpmsetup&&source.zshrc配置pnpm淘宝镜像~pnpm配置setregistryhttps://registry.npmmirror.com/安装镜像管理工具~pnpmaddnrm-g由于我们用的是普通用户编程,所以建议安装n或nvm等node版本管理工具,所以更改目录n到我们可以操作的目录~pnpmaddn-g~echo"\nexportN_PREFIX=\$HOME/.n">>~/.zshrc~echo"exportPATH=\$N_PREFIX/bin:\$PATH">>~/.zshrc~source~/.zshrc#安装最新的长期支持版本~nlts_latest&&node--version#切换回最新版本~nlatest&&node--versioninstallnestjscli~pnpmadd@nestjs/cli-gcreate我们将项目命名为nestplus。如果这一步出错,进入nestplus目录,手动pnpmi~nestnewnestplus#创建时,选择pnpm将所有包升级到最新版本~pnpmup-latest会报missingpeersuggesteddependenciesWebpackwarning,just在package.json中添加如下一段"pnpm":{"peerDependencyRules":{"ignoreMissing":["webpack"]}}代码规范化具体代码和配置请查看源码Style配置airbnb的eslint规则并集成prettier,并经过一定的定制后配合vscode实现完美的编码体验-airbnb-typescript\eslint-config-prettier\eslint-plugin-import\eslint-plugin-prettier\eslint-plugin-unused-imports\eslint-plugin-unused-imports\prettier-plugin-organize-imports\eslint-plugin-jest-D配置内容...plugins:['@typescript-eslint','jest','prettier','import','unused-imports'],extends:[//airbnbspecification'airbnb-base',//Typescript兼容的airbnb规范'airbnb-typescript/base',//typescript的eslint插件'plugin:@typescript-eslint/recommended','plugin:@typescript-eslint/recommended-requiring-type-checking',//支持jest'plugin:jest/recommended',//使用prettier格式化代码'prettier',//集成typescript-eslint和prettier'plugin:prettier/recommended',],一些重要的规则和其他配置查看代码设置解析自己写文件对于tsconfig.eslint.json(我们在Tsconfig配置部分添加了这个文件)parserOptions:{project:'tsconfig.eslint.json',tsconfigRootDir:__dirname,ecmaVersion:'latest',sourceType:'module',},eslint-plugin-unused-imports用于自动删除未使用的导入...'no-unused-vars':0,'@typescript-eslint/no-unused-vars':0,'unused-imports/no-unused-imports':1,'unused-imports/no-unused-vars':['error',{vars:'all',args:'none',ignoreRestSiblings:true,},]importplugin,import/order可以根据自己的需要配置//导入模块的顺序'import/order':['error',{pathGroups:[{pattern:'@/**',group:'external',position:'after',},]],alphabetize:{order:'asc',caseInsensitive:false},'newlines-between':'always-and-inside-groups',warnOnUnassignedImports:true,},],//导入的依赖项不必在依赖项文件中'import/no-extraneous-dependencies':['error',{devDependencies:['**/*.test.{ts,js}','**/*.spec.{ts,js}','./test/**.{ts,js}','./scripts/**/*.{ts,js}',],},],那么就需要配置.prettierrc,和.editorconfig,将一些需要忽略的目录和文件分别添加到.eslintignore和.prettierignore中然后将git仓库需要忽略的目录和文件写入.gitignoreTsconfig中,在tsconfig.json文件中加入ESNEXT使用最新的ES语法,并在根目录映射器中加入一个@{"compilerOptions":{//..."paths":{"@/*":["src/*"]}},"include":["src","test","typings/**/*.d.ts"]}下面在目录下添加一个tsconfig.eslint.json文件供eslint使用{"extends":"./tsconfig.json","includes":["src","test","typings/**/*.d.ts","**.js"]}从tsconfig.build.json中排除**.js{"extends":"./tsconfig.json","exclude":["node_modules","dist","test","**/*spec.ts"]}开发工具node.js、typescript、前端等技术最好的开发工具无疑是vscode,其他可选(包括vim、emacs、sublimetext,atom,webstormetc.)有各种各样的问题需要消耗能量,所以推荐直接使用VScode进行开发。VScode内置了同步配置和插件功能。建议启用并安装vscodeWindows,直接点击安装包。需要注意的是,如果是WSL2或者远程SSH开发,需要在远程重新安装插件~brewinstallvscode安装eslint插件和prettier插件~code--install-extensiondbaeumer.vscode-eslint\&&codeesbenp.prettier-vscode按cmd+,选择Preferences->Workspace,配置eslint插件{"editor.formatOnSave":false,"editor.codeActionsOnSave":{"source.fixAll.eslint":true}}按shift+cmd+d创建launch.json,使用ts-node+tsconfig-paths配置断点调试,设置断点,按F5这样调试方式适合简单使用,后面会讲jest测试调试,这样效果会更好{//使用智能感知了解相关属性//悬停查看已有属性的说明。//如需更多信息,请访问:https://go.microsoft.com/fwlink/?linkid=830387"version":"0.2.0","configurations":[{"name":"debugnestplus","request“:“启动”,“runtimeArgs”:[“运行脚本”,“开始:调试”],“autoAttachChildProcesses”:真,“控制台”:“集成终端”,“runtimeExecutable”:“pnpm”,“skipFiles”:["
