Английский адрес оригинального документа
Что такое jsconfig.json?
существует в каталогеjsconfig.jsonфайл указывает, что этот каталог является корневым каталогом проекта JavaScript.jsconfig.jsonfile указывает корневой файл иЯзыковой сервис JavaScriptДоступные варианты функций
Tip:Если вы не используете JavaScript, то все равно
jsconfig.json
Tip:
jsconfig.jsonФайлы конфигурации, полученные из TypeScripttsconfig.json. эквивалентноtsconfig.jsonизallowJsсвойство установлено наtrue
Почему файл jsconfig.json?
Код Visual StudioJavaScript支持Может работать в двух разных режимах:
-
Область действия файла — нет jsconfig.json: в этом режиме файлы JavaScript, открытые в Visual Studio Code, обрабатываются как отдельные блоки. просто файл
a.jsДокумент, на который явно не ссылаютсяb.ts(использоватьimportилиCommonJS modules), то между двумя файлами нет общего контекста проекта. -
Явный проект — включает jsconfig.json: проекты JavaScript создаются с помощью
jsconfig.jsonфайл определен, существование этого файла в каталоге указывает на то, что этот каталог является корневым каталогом проекта JavaScript. В самом файле можно дополнительно указать файлы, принадлежащие проекту, файлы, которые необходимо исключить из проекта, параметры компилятора и т. д. (см. ниже).
Когда рабочее пространство имеетjsconfig.jsonфайл, улучшена работа с JavaScript. Поэтому при открытии файла JavaScript в новой рабочей области мы предлагаем создатьjsconfig.jsonсоветы по работе с файлами
Расположение jsconfig.json
путем созданияjsconfig.jsonфайл, мы определяем эту часть кода (клиентскую часть веб-сайта) как проект JavaScript. Поместите файл в корневой каталог вашего кода JavaScript, как показано ниже.
В более сложных проектах в рабочей области может быть определено более одногоjsconfig.jsonдокумент. Это необходимо сделать, чтобы IntelliSense ошибочно не намекал коду в одном проекте на код в другом. Ниже приведенclientа такжеserverПапка проекта, которая показывает два отдельных проекта JavaScript
Примечание. IntelliSense переводится в интеллектуальную осведомленность, в среде vscode интеллектуальные подсказки кода, ниже
пример
По умолчанию языковая служба JavaScript проанализирует и предоставит IntelliSense для всех файлов в вашем проекте JavaScript. Вам нужно указать файлы, которые нужно исключить или включить, чтобы обеспечить надлежащую IntelliSense.
Используйте свойство исключения
excludeАтрибуты(шаблон шара) сообщает языковой службе, какие файлы не являются частью исходного кода, что обеспечивает высокую производительность. Если IntelliSense работает медленно, попробуйте добавить несколько файлов (папок) вexcludeв списке (VS Code предложит это сделать, если обнаружит замедление)
{
"compilerOptions": {
"module": "commonjs",
"target": "es6"
},
"exclude": ["node_modules"]
}
Tip:Рекомендуется исключить файлы, созданные в процессе сборки (например,
distкаталог), в противном случае эти файлы будут вызывать двойное появление предложений и замедлять работу IntelliSense.
Используйте атрибут включения
Кроме того, файлы могут быть явно установлены в проекте с помощью атрибута include (глобальный режим). если не существуетincludeатрибут, по умолчанию включаются все файлы в каталоге и подкаталогах. когда указаноincludeАтрибут, только эти указанные файлы включены. Ниже приведен пример с явнымincludeПримеры свойств
{
"compilerOptions": {
"module": "commonjs",
"target": "es6"
},
"include": ["src/**/*"]
}
Tip:Пути к файлам в exclude и include относятся к местоположению jsconfig.json.
jsconfig Options
Следующие элементы используются для настройки поддержки языка JavaScript.jsconfigизcompilerOptions
Tip:Не дайте себя обмануть компиляторомOptions. Это свойство существует, потому что jsconfig.json является производным от tsconfig.json, который используется для компиляции TypeScript.
| Опции | описывать |
|---|---|
noLib |
Не включает файл библиотеки по умолчанию lib.d.ts. |
target |
Укажите библиотеку по умолчанию lib.d.ts для использования, опционально es3/es5/es6/es2015/es2016/es2017/es2018/es2019/es2020/esnext |
module |
Укажите модульную систему (при генерации кода модуля), необязательно amd/commonJS/es2015/es6/esnext/none/system/umd |
moduleResolution |
Укажите, как разрешаются модули для импорта, необязательный узел/классический |
checkJs |
Включить проверку типов для файлов JavaScript |
experimentalDecorators |
дляES装饰器Предложения обеспечивают экспериментальную поддержку |
allowSyntheticDefaultImports |
Разрешить импорт по умолчанию из модулей без экспорта по умолчанию. Это не влияет на генерацию кода, только на проверку типов |
baseUrl |
Базовый каталог для разрешения не относительных имен модулей |
paths |
Указывает карту пути для оценки относительно параметра baseUrl. |
Доступны наДокументация по параметрам компиляции TypeScriptЧитайте о доступныхcompilerOptionsБольше информации о
Использование псевдонимов Webpack
Чтобы IntelliSense мог использовать псевдоним Webpack, его необходимо указать с помощью шаблона glob.paths
Например, для псевдонима ClientApp
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"ClientApp/*": ["./ClientApp/*"]
}
}
}
затем используйте псевдоним
import Something from 'ClientApp/foo'
Лучшие практики
Исключите как можно больше файлов (папок), содержащих код JavaScript, но не являющихся частью исходного кода проекта.
Tip:Если в рабочей области нет
jsconfig.json, VS Code по умолчанию будет исключатьnode_modulesпапка
Следующая таблица представляет собой таблицу общих компонентов проекта с папками их установки, их рекомендуется исключить:
| компоненты | папки для исключения |
|---|---|
node |
исключатьnode_modulesпапка |
webpack, webpack-dev-server
|
Исключить папки содержимого сборки, например.dist
|
bower |
исключатьbower_componentsпапка |
ember |
исключатьtmp andtempпапка |
jspm |
исключатьjspm_packagesпапка |
Когда проект JavaScript становится слишком большим и производительность снижается, это обычно происходит из-за библиотечных папок, таких какnode_modules) вызванный. Если VS Code обнаружит, что проект слишком велик, вам будет предложено отредактировать его.excludeсписок