Skip to content

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

License

Notifications You must be signed in to change notification settings

szymonlesisz/babel-collect-imports

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%