Как найти все импортированные (в коде) зависимости в проекте TypeScript? - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь связать сторонние библиотеки в комплект поставщика с помощью веб-пакета, но делаю это путем сканирования всех файлов TypeScript в дереве и таким образом, чтобы определить импорт пакетов и вернуть их в массив, а не вручнуюподдержание массива зависимостей.

Я нашел пакет на npm, который делает именно это, https://www.npmjs.com/package/find-imports - но, к сожалению, только для файлов .js, а не TypeScript.

Любая помощьс благодарностью.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Не уверен, что это именно то, что вам нужно, но вы можете воспользоваться функцией require.context в веб-пакете.Он позволяет вам указать каталог и регулярное выражение для сопоставления имен содержащихся файлов с.

В следующем примере импортируются все файлы, соответствующие /\.ts$/ из 'path/to/folder'.Второй аргумент true указывает, что указанная папка должна запрашиваться рекурсивно (включая подпапки).

const myImports = require.context('path/to/folder', true, /\.ts$/);
myImports.keys().forEach(myImports);
0 голосов
/ 03 декабря 2018

Попробуйте генератор AST

// get them all
const imports = sourceFile.getImportDeclarations();
// or get the first one that matches a condition
const importWithDefaultImport = sourceFile.getImportDeclaration(i => i.getDefaultImport() != null);
const someModuleImport = sourceFile.getImportDeclaration("module-specifier-text");

Пример взят с этой страницы: https://dsherret.github.io/ts-simple-ast/details/imports

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...