什么是 jsconfig.json?

新手上路,请多包涵

如果我在 Internet 上搜索相同的问题,那么我只会获得指向 Visual Studio Code 网站和一些实现它的博客的链接。

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

如果我们将应用程序部署在 AWSHeroku 等上会发生什么情况。我们是否必须进行更改?

原文由 Rahul 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 594
2 个回答

它是一个配置文件来协助您的文本编辑器。您的文本编辑器的 语言服务器协议(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"]
}

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

基本网址

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

路径

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

包括

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

排除

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

评论

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

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

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

原文由 anakha 发布,翻译遵循 CC BY-SA 4.0 许可协议

正如其他答案所指出的,该协议起源于 Visual Studio Code - 但已被许多框架采用以在编译时工作:

前端

支持 jsconfig.jsontsconfig.json 的前端框架:

后端

后端 Node.js 支持 jsconfig.json / tsconfig.json

原文由 Anson Kao 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题