Почему 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');