VsCode AutoComplete Импорт ссылок на проекты Typescript - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь использовать проекты с рабочими пространствами пряжи и ссылками на проекты машинописного текста. Приближаюсь довольно близко, но я не могу разобраться с предложениями автоматического импорта VsCode.

Структура:

\
tsconfig.base.json
    \packages\shared
     package.json // name: "@shared", main: "lib/index.js"
     tsconfig.json // extends base
                      include, baseUrl & rootDir: "src"
                      outDir: "lib"

     \packages\project1
      package.json // "dependencies": {"@shared":"*"}
      tsconfig.json // extends base
                       "references": [{ "path": "../shared" }]

Я могу построить оба проекта, используя ts c - b со всеми этими вариантами импорта:

  • {} from "@shared" <- package main index.js
  • {} from "@shared/src" <- TS source
  • {} from "@shared/lib" <- compiled JS

Однако импорт из @ shared / sr c завершится с ошибкой Rollup (он не будет принимать файлы не JS вне своего rootDir, даже с @ rollup-plugin-typescript). Я могу использовать @ rollup-plugin-alias для переназначения различных вариантов, но ...

Проблема:

VsCode будет предлагать только @ shared / sr c (худший выбор, если я собираюсь использовать JS) для автоимпорта и дополнения и предложения по рефакторингу

  • Я пытался использовать пути с именем, отличным от проекта, но это не говорит об этом.
  • Я попытался "исключить": ["@ shared / sr c", "../src", "node_modules / @ shared / src] в tsconfig. json
  • Я пытался удалить зависимость проекта рабочей области в пряже, но он все еще видит в root node_modules / @ shared, я полагаю
  • Edit : Я попытался установить ссылку на проект на "node_modules / @ shared" и удивился: VsCode предлагает правильный импорт (@ chrc / shared)! Однако сборка завершается неудачно, так как ts c не может найти ../../tsconfig.base.json из этого tsconfig.

Это предназначено? Это VsCode, результат функции редактирования без сборки в TS 3.7 (отлично работает кстати) или пряжа вещь? Почему VsCode игнорирует официальный пакет. json точка входа и TS outDir? Я не издатель пакета, но нормально ли иметь столько точек входа в пакет? В основном все опубликовано c - я ожидал большей изоляции?

Контекст

Моя главная цель для опробования ссылок состоит в том, что у меня есть проект Rollup и React проект, и я хотел поделиться общим кодом и интерфейсами между ними. Только для частного репо, но я надеялся на более чистые / разные зависимости / модульные SRP / параллельные сборки. В нашем текущем репо все смешано на root и существует риск спагетти.

(Я также не могу получить файлы объявлений окружения для совместного использования из общего проекта ... Я должен кажется, экспортировать их явно, так что, возможно, это была просто плохая идея)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...