Si busco la misma pregunta en Internet, solo obtendré enlaces al sitio web de vscode y algunos blogs que lo implementan.
Quiero saber si jsconfig.json
es específico de vscode
o javascript/webpack
.
¿Qué pasará si desplegamos la aplicación en AWS/Heroku, etc. ¿Tenemos que hacer cambios?
Esto es definitivamente específico de VSCode.
La presencia del archivo jsconfig.json en un directorio indica que el directorio es la raíz de un proyecto de JavaScript. El archivo jsconfig.json especifica los archivos raíz y las opciones para las funciones proporcionadas por el servicio de lenguaje JavaScript.
Consulte más detalles aquí: https://code.visualstudio.com/docs/languages/jsconfig
No necesita este archivo cuando lo implementa en AWS/Heroku, básicamente, puede excluirlo de su compromiso si está utilizando git repo, es decir, agregue jsconfig.json
en su .gitignore
, esto hará que su proyecto sea independiente del IDE.
Es un archivo de configuración para ayudar al Language Server (LSP)
de su editor con el uso de javascript en su carpeta de proyecto.
Si bien parece que esto se originó en VsCode, cualquier editor que use LSP utilizará jsconfig.json
, incluidos VsCode, SublimeText, etc.
Se usa más comúnmente para incluir/excluir carpetas en su intellisense (que hoy en día la mayoría de los editores usan LSP) y asignar alias en su código fuente a ciertas carpetas.
{ "compilerOptions": { "baseUrl": ".", "paths": { "$libs": ["src/libs"], "$libs/*": ["src/libs/*"], } }, "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"], "exclude": ["node_modules", "**/node_modules", "dist"] }
Este archivo básicamente le dice al servidor de idioma que:
.
ubicación como raíz del proyecto (que es donde se encuentra jsconfig.json).
significa que $libs
en su código fuente apunta a /src/libs
. Esto es útil si su editor confía en LSP para ubicar los archivos, cuando inicie go to file
irá al lugar correcto.
significa incluir todas las carpetas y archivos que terminan con esas extensiones para brindarle búsqueda de archivos, finalización de código.
significa excluir todo dentro de node_modules
y la carpeta dist
. Por ejemplo, no desea que el paquete compilado aparezca en los resultados de búsqueda cuando busca símbolos o variables.
En otras palabras, puede considerar jsconfig.json
un poco como .gitignore
pero solo para uso del servidor de idioma de su editor.
Pero tenga en cuenta que, si va a usar jsconfig.json para asignar alias, deberá realizar una configuración adicional en su paquete de módulos y actualizar su configuración de eslint
, es decir, si usa eslint.
Por ejemplo, en un entorno NodeJS-CommonJS, deberá decirle a su nodejs qué es $libs
. Hay muchas maneras de hacerlo, pero en estos días la gente usa principalmente module-alias
.
Como han señalado otras respuestas, este protocolo se originó en VSCode, pero muchos marcos lo han adoptado para funcionar en tiempo de compilación:
Marcos front-end que admiten jsconfig.json
/ tsconfig.json
:
Compatibilidad con NodeJS de back-end para jsconfig.json
/ tsconfig.json
:
module-alias
(consulte https://www.npmjs.com/package/module-alias )