Как решить проблему с модулем импорта машинописного текста

#javascript #typescript

Вопрос:

Я разделил свой код на несколько проектов. И теперь пытаюсь импортировать модули, расположенные в node_modules.

импорт тикера из «тикера» // Машинопись не жалуется
, Но транспилированный JS «импорт тикера из «тикера»; «делает, спецификация модуля отсутствует»./’, ‘ .. / ’ из ‘/’.

Но добавление «./» приводит к: «Не удается найти модуль «.тикер» или его соответствующие объявления типов».

импорт {тикера} из «./node_modules/ticker/dist/ticker.js», приводит к рабочему приложению.
Но Typescript жалуется, что «Не удалось найти файл декларации для модуля». /node_modules/ticker/dist/ticker.js». »

Даже если я использую / / / lt; ссылочный путь=’node_modules/тикер/типы/тикер.d.ts’ / gt;lt; ссылочный путь=’node_modules/тикер/типы/тикер.d.ts’ / gt;

Пакет проекта тикера содержит

 "main": "dist/ticker.js",  "module": "dist/ticker.js",  "typings": "typings/ticker.d.ts",  

тикер.d.ts

 declare module 'ticker' {  class Ticker {  constructor (container:HTMLElement);  add (htmlElem:HTMLElement):number;  }  export default Ticker; }  

Основной проект tsconfig.json содержит:

 "moduleResolution": "node",  "baseUrl": "./",  "paths": {  "Ticker":["/node_modules/ticker/dist/ticker.js"]  },  

Я использую только tsc и путаюсь во всех предлагаемых вариантах и возможностях.

Почему VCode распознает путь «импорт {Тикер} из «./node_modules/тикер/тикер», указывающий на местоположение тикера.ts. Но не «./node_modules/тикер/dist/», указывающий на ticker.js?

Комментарии:

1. «Я разделил свой код на несколько проектов. А теперь пытаюсь импортировать модули, расположенные в node_modules» Почему ваш код в node_modules ? Это необычно. Сторонние модули идут туда, но модули для вашего собственного приложения (для которого вы пишете код) обычно этого не делают.

2. Вы смотрели на другой модуль узла, как они настроены? Я бы подражал их структуре и настройкам. Является ли «тикер» реальным узловым модулем? Если да, вы можете настроить сценарии после установки для написания конфигураций, сборки dist/ и т. Д.

3. Базовый проект состоит из веб-сканера/скребка данных NodeJS, сервера данных NodeJS (API) и приложений для интерфейсной панели. Многократное использование, проектирование и, следовательно,повторное использование кода. Различные подпроекты и сопровождающие.

4. «Является ли «тикер» реальным узловым модулем?», нет! Веб-компонент (панель мониторинга HTML). Другие подпроекты являются узловыми приложениями.