Skip to content

Require2 is an enhanced version of builtin require module

License

Notifications You must be signed in to change notification settings

misaka-ink/require2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Require2

Build Status

English | 简体中文

Require2 is an enhanced version of builtin require module. It supports alias to simplify your tedious require statement and also provides some experiential features.

Install

npm install @misaka.ink/require2

Getting Started

Add field alias to maintain mapping rules in your package.json file, all path should be related to the dir of package.json path.

CAUTION: when usingrequire2(${module}), only the nearest package.json to current js file will be used.

Real World Examples

Your package.json file

{
    "alias": {
        "@x": "@lerna",
        "@components": "./packages/components/src/"
    }
}
require('@misaka.ink/require2') // include require2 in your entry file, which only need once
require2('@components/header') // => equal to `require('<PROJECT_ROOT>/packages/components/src/header')`
require2('@x/version') // => equal to `require('@lerna/version')`

Experiential features

1. Auto-adds environment-related postfix when requiring.

Without require2
const env = {
    development: require('./conf'),
    production: require('./conf.prod.json'),
    test: require('./conf.test')
}[process.env.NODE_ENV || 'development']

require2 provides a method to add envmap files to reduce env based code.

CAUTION: the .json postfix is strictly required to enable this feature. And you can use envmap with alias without any conflict.

With require2 Examples
{
    "envmap": {
        "production": "prod",
        "test": "test",
        "[NODE_ENV]": "[ABBR]"
    }
}
/**
    below is statement is equal to 
    ```javascript
    const env = {
        development: require('./conf'),
        production: require('./conf.prod.json'),
        test: require('./conf.test')
    }[process.env.NODE_ENV || 'development']
    ```
*/
const conf = require2('./conf.json')
alias suppport
/**
    below is statement is equal to 
    ```javascript
    const env = {
        development: require('<PROJECT_ROOT>/packages/components/src/mainfest.json'),
        production: require('<PROJECT_ROOT>/packages/components/src/mainfest.prod.json'),
        test: require('<PROJECT_ROOT>/packages/components/src/mainfest.test.json'),
    }[process.env.NODE_ENV || 'development']
    ```
*/
require2('@components/mainfest.json')

About

Require2 is an enhanced version of builtin require module

Resources

License

Stars

Watchers

Forks

Packages

No packages published