node.js с модулями ES6, Typescript и Winston: «ошибка TS2307: не удается найти модуль« winston »» - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь заставить Уинстона работать в node.js (v13.11.0) с включенными модулями ES6 и машинописью, но пока безуспешно:

Мой код (в src/lib/logging.ts):

import * as logger from 'winston';
// ...

Сначала я сделал:

$ npm install --save winston

Что добавило его в раздел dependencies, как и ожидалось:

"dependencies": {
    ...
    "winston": "^3.2.1",
    ...
}

Но когда я запускаю приложение, я получаю следующая ошибка :

src / lib / logging.ts: 2: 25 - ошибка TS2307: не удается найти модуль 'winston'.

2 import * как регистратор из 'winston';

Затем я попробовал, что за некоторые другие зависимости работали:

$ npm install --save-dev @types/winston
npm WARN deprecated @types/winston@2.4.4: This is a stub types definition. 
winston provides its own type definitions, so you do not need this installed.

Это добавило более старую версию к devDependencies , который кажется бесполезным:

"devDependencies": {
    ...
    "@types/winston": "^2.4.4",
    ...
}

И когда я запускаю приложение, я получаю такую ​​же ошибку , как указано выше.

1 Ответ

1 голос
/ 07 апреля 2020

Поскольку вы работаете в Node, для импорта любого модуля / пакета необходимо использовать следующий синтаксис

const winston = require('winston');

После этого вы можете вызывать любой метод или использовать любое свойство предоставленный Winston или любым другим импортируемым вами модулем

...