Как подсветить импорты из кастомного ES модуля в Intellij IDEA?

Рейтинг: 2Ответов: 1Опубликовано: 01.06.2023

Для будущего сопровождения кода, необходимо сделать так, чтобы среда(в моём случае intellij idea 2021.1.3) подсвечивала импорты из кастомных модулей внутреннего рабочего репозитория. В проекте используется модуль пропущенный через Babel представляющий из себя набор экспортируемых функций, который загружается из репозитория в node_modules, путь к файлу выглядит вот так:

project_name/node_modules/@modules/my-custom-module/dist/module.js

Пример импорта в проекте:

import { First, Second, Third } from '@modules/my-custom-module'

Это собирается и работает нормально, но идея не видит сами функции и автокомплит не работает... Сначала я подумал, что что-то не так со сборщиком, т.к. в сыром виде код импортируется нормально и функции подсвечиваются, возможно в этом и есть проблема. Долгие поиски привели меня к alias'ам, они могут настраиваться в webpack, babel, package.json и можно создать корневой файл jsconfig.json. Вариант с вебпаком не подошёл, т.к. на видимость средой это никак не повлияло, по сути обычная кастомизация путей, для удобного восприятия. Сейчас пробую jsconfig.json:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "modules/*": ["./node_modules/@modules/my-custom-module/dist/*"]
    }
  }
}

Идея никак не реагирует, либо я неправильно указываю путь, либо занимаюсь фигней, мб кто-то уже сталкивался с подобной задачей?

Ответы

▲ 1Принят

Разобрался только после того, как я создал свой модуль и залил его на гитхаб, оказывается, что модули собираются вместе с исходниками, которые мои коллеги не добавили в репозиторий! Таким образом, IDE прекрасно подтягивает импорты, а после сборки транспилированный код находится в папке dist. Какая глупая ситуация!

pacakge.json

{
  "name": "@modules/my-custom-module",
  "main": "dist/module.js",
  "esnext": "src"
  "files": [
    "README.md",
    "dist",
    "src"
  ],
}