VSCode NestJS Snippets 项目教程
1. 项目的目录结构及介绍
vscode-nestjs-snippets/
├── snippets/
│ ├── nestjs.json
├── .gitignore
├── .vscodeignore
├── CHANGELOG.md
├── CONTRIBUTING.md
├── ISSUE_TEMPLATE.md
├── LICENSE
├── PULL_REQUEST_TEMPLATE.md
├── README.md
├── img/
│ ├── nestjs.jpg
├── package.json
├── vsc-extension-quickstart.md
目录结构介绍
- snippets/: 包含所有 NestJS 代码片段的配置文件。
- .gitignore: 指定 Git 版本控制系统忽略的文件和目录。
- .vscodeignore: 指定在打包扩展时忽略的文件和目录。
- CHANGELOG.md: 记录项目版本更新的日志。
- CONTRIBUTING.md: 指导开发者如何为项目贡献代码。
- ISSUE_TEMPLATE.md: 提供提交 Issue 时的模板。
- LICENSE: 项目的开源许可证。
- PULL_REQUEST_TEMPLATE.md: 提供提交 Pull Request 时的模板。
- README.md: 项目的介绍和使用说明。
- img/: 包含项目相关的图片资源。
- package.json: 项目的 npm 配置文件,包含项目依赖和脚本。
- vsc-extension-quickstart.md: 提供扩展开发的快速入门指南。
2. 项目的启动文件介绍
项目的启动文件主要是 package.json
,其中包含了项目的启动脚本和其他配置信息。
{
"name": "vscode-nestjs-snippets",
"displayName": "NestJS Snippets",
"description": "Code snippets for NestJS",
"version": "1.3.0",
"publisher": "ashinzekene",
"engines": {
"vscode": "^1.10.0"
},
"categories": [
"Snippets"
],
"contributes": {
"snippets": [
{
"language": "typescript",
"path": "./snippets/nestjs.json"
}
]
},
"scripts": {
"postinstall": "node ./node_modules/vscode/bin/install",
"test": "node ./node_modules/vscode/bin/test"
},
"devDependencies": {
"typescript": "^2.0.3",
"vscode": "^1.0.0",
"mocha": "^2.3.3",
"eslint": "^3.6.0",
"@types/node": "^6.0.40",
"@types/mocha": "^2.2.32"
}
}
关键配置介绍
- name: 扩展的名称。
- displayName: 扩展在 VSCode 市场中的显示名称。
- description: 扩展的描述。
- version: 扩展的版本号。
- publisher: 扩展的发布者。
- engines: 指定扩展支持的 VSCode 版本。
- categories: 扩展的分类。
- contributes: 扩展的贡献点,这里指定了代码片段的路径。
- scripts: 包含项目的启动和测试脚本。
- devDependencies: 开发依赖的 npm 包。
3. 项目的配置文件介绍
项目的配置文件主要是 snippets/nestjs.json
,其中包含了所有 NestJS 代码片段的定义。
{
"Nest Controller": {
"prefix": "n-controller",
"body": [
"import { Controller, Get } from '@nestjs/common';",
"",
"@Controller('${1:controller}')",
"export class ${2:ControllerName}Controller {",
" @Get()",
" findAll(): string {",
" return 'This action returns all $1';",
" }",
"}"
],
"description": "NestJS Controller"
},
"Nest Root Module": {
"prefix": "n-module-root",
"body": [
"import {