Я читал о пути картирования в tsconfig.json
и я хотел бы использовать его , чтобы избежать , используя следующие уродливые пути:
Организация проекта немного странная, потому что у нас есть моно-репозиторий, содержащий проекты и библиотеки. Проекты сгруппированы по компаниям и по браузеру / серверу / универсальному.
Как я могу настроить пути tsconfig.json
так вместо:
import { Something } from "../../../../../lib/src/[browser/server/universal]/...";
Я могу использовать:
import { Something } from "lib/src/[browser/server/universal]/...";
Нужно ли что-то еще в конфигурации веб-пакета? или tsconfig.json
достаточно?
typescript
node-modules
tsconfig
Ремо Х. Янсен
источник
источник
Ответы:
Это можно настроить в вашем файле tsconfig.json, так как это функция TS.
Вы можете сделать так:
Имейте в виду, что путь, на который вы хотите сослаться, принимает ваш baseUrl в качестве основы маршрута, на который вы указываете, и является обязательным, как описано в документе.
Символ '@' не является обязательным.
После того, как вы настроите его таким образом, вы можете легко использовать его следующим образом:
единственное, что вы можете заметить, это то, что intellisense не работает в текущей последней версии, поэтому я бы предложил придерживаться соглашения об индексе для импорта / экспорта файлов.
источник
moduleNameMapper
: tsjest # 414Вы можете использовать комбинацию
baseUrl
иpaths
документы .Предполагая, что root находится в самом верхнем
src
каталоге (и я правильно прочитал ваше изображение), используйтеДля
webpack
вас также может потребоваться добавить разрешение модуля . Дляwebpack2
этого может выглядетьисточник
Проверьте это аналогичные решения звездочкой
источник
Ответ Alejandros работал для меня, но, так как я использую
awesome-typescript-loader
с webpack 4, мне также пришлось добавить вtsconfig-paths-webpack-plugin
мой файл webpack.config, чтобы он разрешался правильноисточник
Если вы используете пути, вам нужно изменить абсолютные пути на относительные пути, чтобы он работал после компиляции машинописи в простой javascript с использованием
tsc
.Самое популярное решение для этого было tsconfig-pathsДо сих пор .
Я попробовал это, но у меня не получилось для моей сложной настройки. Кроме того, он разрешает пути во время выполнения, то есть накладные расходы с точки зрения размера вашего пакета и разрешения производительности.
Итак, я сам написал решение, tscpaths .
Я бы сказал, что лучше в целом, потому что он заменяет пути во время компиляции. Это означает, что нет зависимости во время выполнения или каких-либо накладных расходов. Это довольно просто в использовании. Вам просто нужно добавить строку в ваши скрипты сборки в
package.json
.Проект довольно молодой, поэтому могут возникнуть некоторые проблемы, если ваши настройки очень сложны. Это работает безупречно для моей установки, хотя моя установка довольно сложна.
источник
если используется typescript + webpack 2 + at-loader, есть дополнительный шаг (решение @ mleko для меня работало только частично):
Расширенное разрешение пути в TypeScript 2.0
источник
Это работает для меня:
Это загружает все пути в tsconfig.json. Пример tsconfig.json:
Убедитесь, что у вас есть и baseUrl, и пути для этого
И тогда вы можете импортировать как:
источник
Своего рода относительный путь вместо приведенного ниже кода
Мы можем избежать "../../../../../", это выглядит странно и не читабельно.
Таким образом, в конфигурационном файле Typescript есть ответ на то же самое. Просто укажите baseUrl, config позаботится о вашем относительном пути.
Способ настройки: в файле tsconfig.json добавьте следующие свойства.
Итак, наконец, это будет выглядеть ниже
Выглядит просто, потрясающе и более читабельно.
источник
Оформить работу компилятора, используя это
Я добавил baseUrl в файл для проекта, как показано ниже:
"baseUrl": "src"
Работает нормально. Так что добавьте ваш базовый каталог для вашего проекта.
источник
/
начинается только с корня, чтобы получить относительный путь, который мы должны использовать./
или../
источник
Похоже, что было обновлено React, которое не позволяет вам устанавливать
"paths"
вtsconfig.json
anylonger.Приятно React просто выводит предупреждение:
затем обновляет
tsconfig.json
и удаляет весь"paths"
раздел для вас. Есть способ обойти этот забегЭто изменит все
create-react-scripts
настройки, добавивconfig
иscripts
каталоги, и файлы build / config в ваш проект. Это также дает гораздо больший контроль над тем, как все построено, названо и т. Д. Путем обновления{project}/config/*
файлов.Затем обновите свой
tsconfig.json
источник