Узел - Поиск зависимости рекурсивно - PullRequest
0 голосов
/ 31 декабря 2018

Я хочу выполнить рекурсивный поиск и определить, использую ли я определенный модуль Node.Возможно ли это?

1 Ответ

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

Если вы имеете в виду не во время выполнения, вы можете сделать:

npm ls <module name to search for>

Например:

$ npm ls async
/Users/justin/code/example
├─┬ aws-cdk@0.19.0
│ └─┬ archiver@2.1.1
│   └── async@2.1.4  deduped
├─┬ mongooster@6.0.2
│ └─┬ mongoose@5.3.5
│   └── async@2.6.1
└─┬ sqs-consumer@3.8.0
  └── async@2.1.4

Во время выполнения вы можете использовать require.resolve

> require.resolve('async')
'/Users/justin/code/example/node_modules/async/dist/async.js'

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

> require.cache[require.resolve('async')]
Module {
  id: '/Users/justin/code/example/node_modules/async/dist/async.js',
  exports: { ... },
  parent: Module { ... },
  filename: '/Users/justin/code/example/node_modules/async/dist/async.js',
  loaded: true,
  children: [],
  paths: [ ... ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...