#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). Другие подпроекты являются узловыми приложениями.