Почему TypeScript не может найти модули, которые установлены в "модули узлов"?

учитывая следующую структуру каталогов:

{project}/
  |-- node_modules/
  |    |-- lodash
  |-- src/
  |    |-- index.ts
  |-- lib/ (output)
  |    |-- index.js
  |    |-- index.d.ts
  |-- package.json
  |-- tsconfig.json

в то время как встроенный выход функционирует должным образом;tsc команда жалуется, что она не может разрешить модуль lodash, когда я использую любое из следующего:

import _ from "lodash";
import _ = require("lodash");
import * as _ from "lodash";

внутри моего ' tsconfig.файл JSON' я включил следующие вещи:

...

"target": "es6",
"sourceMap": true,
"module": "commonjs",
"moduleResolution": "node",

...

но, несмотря на это, он все еще не находит ни одного из модулей, установленных с помощью npm.

я пропустил что-то, что требуется чтобы TypeScript нашел эти модули?

Я понимаю, что без файла определения TypeScript TypeScript не может предоставить дополнительные проверки типов; однако, конечно, они должны просто по умолчанию any тип справа?

1 ответов


поскольку lodash не имеет файла определения в папке node_modules/lodash, это не сработает. Вам придется загрузить его с помощью typings или использовать внешнее объявление вместо импорта:

declare var _: any;

для узла.js вы должны использовать:

var _ = require('lodash');