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日

相关文章

  • python中的decimal类型转换实例详解

    下面就为大家详细讲解“Python中的decimal类型转换实例详解”的完整攻略。 概述 Python中的decimal类型是用于精确计算的浮点数,可以解决常规浮点数运算产生的误差问题。而在进行decimal类型的转换过程中,需要注意其精度和舍入模式等因素。 基本用法 创建decimal类型 要创建decimal类型,需要调用decimal模块中的Decim…

    C 2023年5月22日
    00
  • 上古卷轴5传奇难度炼金师怎么开局好 传奇难度炼金师开局攻略

    上古卷轴5传奇难度炼金师开局攻略 炼金师角色建议 种族:阿尔高(Altaic)或暗精灵(Dark Elf),他们有更好的炼金术技能和魔法属性。 技能:炼金术、修补和瞄准。 石头:史前之石(The Steed),加快行走速度和背包容量。 装备:轻甲,弓箭和炮台制造材料。 开局攻略 步骤一:获得合适的装备 到河岸城镇(Riverwood)和白兰地(Whiteru…

    C 2023年5月22日
    00
  • 解决JSON.parse转化不规范json字符串的问题

    当JSON.parse遇到不规范的JSON字符串时,它将会抛出JSON.parse错误,导致代码无法继续执行。这时可以采用一些技巧和工具来解决这个问题。 1.使用try-catch语句 在JSON.parse方法周围包裹try-catch语句是解决这个问题的一种常见方式。这样如果JSON.parse方法抛出异常,我们就可以在catch语句中捕获这个异常,然后…

    C 2023年5月23日
    00
  • c/c++中变量的声明和定义深入解析

    c/c++中变量的声明和定义深入解析 在c/c++中,变量的声明和定义是非常重要的,因为它们决定了变量的作用域和生命周期。本文将深入讲解变量声明和定义的概念、语法和使用方法,并提供两个实例进行说明。 变量声明和定义 在c/c++中,变量的声明和定义是不同的概念,虽然在一些情况下它们可以混用。下面分别介绍两者的概念、语法和使用方法。 变量声明 变量声明是指向编…

    C 2023年5月23日
    00
  • AJAX开发简略 (第二部分)

    下面我来详细讲解“AJAX开发简略 (第二部分)”的完整攻略。 AJAX开发简略(第二部分) 在上一篇文章中,我们已经了解到 AJAX 的定义、用途和基本的使用方法。本篇文章将介绍如何使用 AJAX 进行数据交互,以及如何避免常见的 AJAX 开发问题。 数据交互 AJAX 最常见的用途就是向服务器获取数据并更新页面,而且这个过程是异步进行,不会阻塞页面加载…

    C 2023年5月22日
    00
  • 深入解析C++中的指针数组与指向指针的指针

    深入解析C++中的指针数组与指向指针的指针 指针数组 指针数组是指以数组形式存储的指针的集合。其语法格式为: type* array_name[size]; type为指针所指向的类型,array_name为数组的名称,size为数组的大小。其中,*表示指针运算符。指针数组定义完成后,可以通过下标的方式对其进行操作。 以下是一个示例,展示如何定义和使用指针数…

    C 2023年5月23日
    00
  • 淘宝直播间进不去怎么回事?怎么做?

    淘宝直播间进不去怎么回事?怎么做? 淘宝直播是淘宝平台上的一项直播服务,为商家提供直播卖货的渠道,吸引了大量用户。但是,用户在使用淘宝直播时,有时遇到无法进入直播间的问题,接下来我们将为大家介绍如何解决。 一、检查网络连接 首先,我们需要检查一下自己的网络连接是否正常。可以打开其他网站试试看,如果其他网站打得开,那就是淘宝平台的问题,如果其他网站也打不开,那…

    C 2023年5月23日
    00
  • C++类与对象的重点知识点详细分析

    C++类与对象的重点知识点详细分析 什么是C++类和对象? 类是一种用户自定义的数据类型,它将数据的成员变量和行为的成员函数封装到一个单元中,用以描述现实世界中的对象,从而方便程序员编写复杂的业务逻辑。类的实例化对象称为对象,每个对象都有自己的数据和操作方法。C++中的类和对象是C语言的扩展,可以使用封装、继承和多态等特性实现OOP思想。 如何定义一个C++…

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