VsCode的jsconfig配置文件说明详解

下面是关于VsCode的jsconfig配置文件说明详解的完整攻略。

什么是 jsconfig.json?

jsconfig.json 是一个用于在 VS Code 中指定 JavaScript 项目根目录的配置文件。

jsconfig.json 文件中,我们可以通过配置路径映射、JS 声明、解析模块、编译选项等,来使 VS Code 更好地为 JavaScript 代码提供语法提示等辅助功能。

如何创建 jsconfig.json?

在项目根目录创建一个名为 jsconfig.json 文件即可。具体的,我们可以按照以下标准格式来编写:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "allowSyntheticDefaultImports": true,
    "baseUrl": "./src",
    "paths": {
      "*": ["*", "src/*"]
    }
  },
  "exclude": [
    "node_modules",
    "dist"
  ]
}

配置项讲解

下面我们来详细讲解一下 jsconfig.json 中的各个可配置项。

compilerOptions

compilerOptions 配置项中,我们可以指定 TypeScript 编译器的选项。

以下是几个常用的选项:

module

通过指定 module 选项来指定生成代码的模块类型,默认使用 commonjs。

例如:

"compilerOptions": {
    "module": "amd"
}

target

通过指定 target 选项来指定 编译后的 JavaScript 代码的版本,默认是 ES5。

例如:

"compilerOptions": {
    "target": "es2017"
}

allowSyntheticDefaultImports

这个选项可以启用导入默认值,允许您导入默认到一个非默认的导出模块。默认情况下它是禁用的。

例如:

"compilerOptions": {
    "allowSyntheticDefaultImports": true
}

baseUrl 和 paths

通过 baseUrlpaths 选项来指定模块的根目录和相关的路径映射。

例如:

"compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": [
        "src/*"
      ]
}

在上面的配置中,@ 符号表示使用 baseUrl 配置中指定的根目录,使用 paths 配置中指定的路径时,对应使用 src 目录下的文件。

exclude

exclude 配置项中,我们可以指定哪些文件或目录不需要包含到项目中。

例如:

"exclude": [
    "node_modules",
    "dist"
]

示例说明

以下分别给出两个使用示例。

示例1

在我们的项目中,使用了一些自定义的目录结构,例如 ./api 用于存放 API 调用相关的代码,./libs 用于存放自定义的工具类库。

那么在 jsconfig.json 中,我们可以通过以下配置来告诉 VS Code 如何查找相关的依赖:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "api/*": ["./api/*"],
      "libs/*": ["./libs/*"]
    }
  },
  "exclude": ["node_modules"]
}

这样,在我们编写代码的时候,就可以采用如下方式来引入相关依赖:

import { get } from 'api/request';
import { debounce } from 'libs/utils';

示例2

在我们的项目中,使用了 Vue.js 作为前端框架。

由于 Vue.js 采用的是单文件组件的方式进行开发,所以在我们编写代码的时候,需要对 *.vue 文件进行相应的类型声明,以便在使用的时候能够获得正确的提示。

那么在 jsconfig.json 中,我们可以通过以下的配置来指定相关的类型声明:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "*": ["src/*"],
      "@/*": ["src/*"]
    },
    "types": [
      "vue",
      "webpack-env",
      "jest"
    ],
    "typeRoots": [
      "node_modules/@types",
      "node_modules/vue/types"
    ]
  },
  "exclude": [
    "node_modules",
    "dist",
    "public"
  ]
}

在上面的配置中,通过指定 types 选项来告诉 VS Code 需要编写 Vue.js 代码,并且需要支持 webpack 环境和 Jest 测试环境。

并且在其 typeRoots 配置中,指定了包含类型声明的根目录。

这样,我们在编写 Vue.js 代码时,就可以获得类似于如下的语法提示:

<template>
  <div>{{ message }}</div>
</template>

<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';

@Component
export default class HelloWorld extends Vue {
  private message: string = 'Hello World';
}
</script>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:VsCode的jsconfig配置文件说明详解 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Python2.x与3​​.x版本有哪些区别

    Python2.x与3.x版本有哪些区别 Python2.x与3.x版本在语法上的区别 Python 3.x版本在语法上与Python 2.x版本相比有以下区别: 1. print语句 在Python 2.x版本中,print是语句,可以直接输出内容,语法如下: # Python 2.x print "hello world" 而在Pyt…

    C 2023年5月22日
    00
  • Windows 2003 服务器安全设置图文教程

    针对“Windows 2003 服务器安全设置图文教程”的完整攻略,我给出如下的详细讲解。 Windows 2003 服务器安全设置图文教程攻略 为什么需要进行安全设置 Windows 2003服务器上的安全设置非常重要,它无论是对个人用户,还是企业用户,都拥有不可忽视的重要性。 首先,Windows 2003服务器安全设置可以保障服务器的安全稳定性,避免网…

    C 2023年5月22日
    00
  • 通过示例详解C++智能指针

    通过示例详解C++智能指针 什么是智能指针 智能指针是C++中的一种封装类,用于替代传统的指针。其方便的特性在于它在生命周期结束时会自动释放内存,从而避免了内存泄漏的风险。C++标准库提供了三种类型的智能指针:unique_ptr、shared_ptr、weak_ptr。下面将分别介绍它们的用法。 unique_ptr unique_ptr是指向独占所有权的…

    C 2023年5月22日
    00
  • C语言 自定义类型全面系统理解

    C语言自定义类型全面系统理解 在C语言中,我们可以通过定义自己的类型来方便地操作数据。这些自定义类型可以是结构体、枚举、联合等等。本文将详细介绍各种自定义类型的用法和注意事项。 结构体 结构体是一种用户自定义的数据类型,将不同的数据类型打包成一个整体。结构体的定义如下: struct 结构体名 { 数据类型1 成员变量名1; 数据类型2 成员变量名2; //…

    C 2023年5月23日
    00
  • CMake语法及CMakeList.txt简单使用小结

    下面将详细讲解CMake语法及CMakeList.txt简单使用小结。 1. 什么是CMake CMake是一个跨平台开源工具,可以自动生成用于各种编译器的makefile文件。 2. CMake语法 CMake语法采用命令模式,每个命令都由一个大写字母的关键字加上参数构成,可用的关键字很多,这里仅列举常用命令: ADD_EXECUTABLE:添加可执行文件…

    C 2023年5月23日
    00
  • C++利用jsoncpp库实现写入和读取json文件

    下面是C++利用jsoncpp库实现写入和读取json文件的完整攻略。 安装jsoncpp库 首先需要安装jsoncpp库,可以通过以下方式进行安装: 使用apt-get命令在Ubuntu系统下安装: sudo apt-get install libjsoncpp-dev 使用yum命令在CentOS系统下安装: sudo yum install jsonc…

    C 2023年5月23日
    00
  • C++如何判断一个数是不是素数

    当然,作为一个网站的作者,我很乐意为你提供详细的攻略。 在C++中判断一个数是否是素数,通常有两种方法:暴力枚举和筛法。 暴力枚举 暴力枚举是一种较为简单的方法,即对于一个数n,将n分别除以2,3,4,…,n-1,判断它是否能除尽这些数。若一旦出现n%i==0,则说明n不是素数。 暴力枚举的代码实现如下: bool isPrime(int n) { if…

    C 2023年5月23日
    00
  • C++设计模式之享元模式(Flyweight)

    C++设计模式之享元模式(Flyweight)攻略 概述 享元模式是一种结构型设计模式,它的主要目标是减少对象的数量,通过尽可能多的与其他相似对象共享来最小化内存占用和计算量。 在享元模式中,所有共享对象都以一个单一的实例存在于内存中,因此系统需要考虑识别这些对象以便正确地重用已经存在的实例,而不是创建新的对象。具体实现时,享元模式通过将需要重复使用的属性划…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部