@misaka.ink/require2

1.2.1 • Public • Published

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')

Package Sidebar

Install

npm i @misaka.ink/require2

Weekly Downloads

1

Version

1.2.1

License

MIT

Unpacked Size

7.9 kB

Total Files

5

Last publish

Collaborators

  • smilingxinyi