什么是 jsconfig.json?

Rah*_*hul 66 javascript node.js visual-studio-code

如果我在 Internet 上搜索相同的问题,那么我\xe2\x80\x99 将仅获得 Visual Studio Code 网站和一些实现它的博客的链接。

\n

我想知道这是jsconfig.json特定于 Visual Studio Code 还是javascript/webpack

\n

如果我们将应用程序部署在AWSHeroku上会发生什么等上会发生什么,我们需要做出改变吗?

\n

ana*_*kha 78

它是一个帮助您的文本编辑器的配置文件。您的文本编辑器的语言服务器协议(LSP) 会查看此文件以了解有关您的项目的更多信息。

虽然这似乎源自 Visual Studio Code,但任何使用 LSP 的编辑器都会使用文件jsconfig.json,包括 Visual Studio Code、Sublime Text等。

它最常用于在智能感知中包含/排除文件夹(现在大多数编辑器使用 LSP),并将源代码中的别名映射到某些文件夹。

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "$libs": ["src/libs"],
      "$libs/*": ["src/libs/*"],
    }
  },
  "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"],
  "exclude": ["node_modules", "**/node_modules", "dist"]
}
Run Code Online (Sandbox Code Playgroud)

该文件基本上告诉语言服务器:

基本网址

使用该.位置作为项目根目录(即文件jsconfig.json的位置)。

路径

这意味着源代码中的$libs指向/src/libs. 如果您的编辑器依赖 LSP 来定位文件,这非常有用。当您启动“转到文件”时,它将转到正确的位置。

包括

这意味着包含以这些扩展名结尾的所有文件夹和文件,以便为您提供文件搜索、代码完成。

排除

这意味着排除文件夹内的所有node_modules内容dist。例如,当您搜索符号或变量时,您不希望已编译的包出现在搜索结果中。

评论

换句话说,您可以将jsconfig.json文件视为有点像.gitignore文件,但仅供编辑器的语言服务器使用。

但请记住,如果您要使用jsconfig.json来映射别名,则需要对模块捆绑器进行额外的配置,并更新您的eslint配置,也就是说,如果您使用ESLint

例如,在Node.js / CommonJS环境中,您需要告诉 Node.js $libs是什么。有很多方法可以做到这一点,但现在人们主要使用module-alias