babel-collect-imports

v1.1.0
Recursively collect all the internal and external dependencies from an entry point
babel babylon file imports dependencies internal external

babel-collect-imports

Recursively collect all the internal and external dependencies from an entry point

Install

yarn add babel-collect-imports

Usage

const { collectImportsSync } = require('babel-collect-imports');

let { internal, external } = collectImportsSync('path/to/entry.js');
// { internal: ['path/to/entry.js', 'path/to/import.js', 'path/to/other/import.js'],
//   external: ['lodash', 'react'] }

When it discovers an "internal" dependency (one that is not a node package), it will follow the import and continue collecting dependencies.

API

collectImportsSync(entry, parserOpts?, resolveOpts?)

  • entry should be a full file path
  • parserOpts is Babylon's options
  • resolveOpts is resolve's options

FAQ

How are "internal" vs "external" imports determined?

It's all about the starting dot:

import internal from './internal-because-it-starts-with-a-dot';
import external from 'external-because-it-does-not-start-with-a-dot';

What about my special aliasing system?

Your custom aliasing is bad and you should feel bad. Try playing with resolveOpts.

npm i babel-collect-imports

Metadata

  • MIT
  • Whatever
  • James Kyle
  • released 1/11/2018

Downloads

Maintainers