analyze-require-default
v0.2.0
Published
Analyze require statements of ES modules without .default
Downloads
4
Maintainers
Readme
analyze-require-default
Analyze require()
statements of ES modules without .default
.
JavaScript's module systems can be confusing sometimes, specifically the tiny differences in default exports/imports between ES modules (import
/export
) and commonjs (module.exports
/require
) syntax.
Such differences can be hard to find manually, and could potentially cause weird behaviours/bugs, and this is what this package is for!
Here's a quick example to demonstrate:
// a.js
module.exports = 1;
// b.js
export default 2;
// Import default from
import a from 'a'; // This is fine, even though we're mixing 2 different module systems
import b from 'b'; // This is fine, we're on the same module system
const a = require('a'); // This is fine, we're on the same module system
const b = require('b'); // This is NOT fine, we'll get "{ default: 2 }"
Installation
Install the package:
npm i -g analyze-require-default
Usage and options
analyze-require-default [root] [options]
Example
analyze-require-default ./app
Options
| Option | Alias | What it does | Positional arguments | Default |
| ------ | ----------- | ------------------------------------------------- | ---------------------------------------------------------------------------- | ------- |
| -c
| --config
| Uses a configuration file. | An absolute or relative path to a configuration file. | - |
| -d
| --debug
| Outputs extra debugging information. | - | false
|
| -v
| --version
| Outputs the current version. | - | - |
| -h
| --help
| Output the program's usage information. | - | - |
Configuration file
Can be either a .js
file or a .json
file, supports the following options:
| Option | What it does | Type |
| ------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
| root
| An absolute or relative path to the root directory. | string
|
| alias
| A map of path aliases, similar to Webpack's alias | Record<string, string \| string[]>
|
| debug
| Output extra debugging information. | boolean
|
Example
analyze-require-default -c ./config.js
// ./config.js
const path = require('path');
module.exports = {
root: './app',
debug: true,
alias: {
Utilities: path.resolve(__dirname, 'src/utilities/'),
Templates: path.resolve(__dirname, 'src/templates/'),
},
};