You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
# real-require
|
|
|
|
|
|
|
|
|
|
[](https://npm.im/real-require)
|
|
|
|
|
[](https://libraries.io/npm/real-require)
|
|
|
|
|
[](https://github.com/pinojs/real-require/actions?query=workflow%3ACI)
|
|
|
|
|
|
|
|
|
|
Keep require and import consistent after bundling or transpiling.
|
|
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
|
|
Just run:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
npm install real-require
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
|
|
The package provides two drop-ins functions, `realRequire` and `realImport`, which can be used in scenarios where tools like transpilers or bundlers change the native `require` or `await import` calls.
|
|
|
|
|
|
|
|
|
|
The current `realRequire` functions only handles webpack at the moment, wrapping the `__non_webpack__require__` implementation that webpack provides for the final bundle.
|
|
|
|
|
|
|
|
|
|
### Example
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
// After bundling, real-require will be embedded in the bundle
|
|
|
|
|
const { realImport, realRequire } = require('real-require')
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
By using realRequire, at build time the module will not be embedded and at runtime it will try to load path from the local filesytem.
|
|
|
|
|
This is useful in situations where the build tool does not support skipping modules to embed.
|
|
|
|
|
*/
|
|
|
|
|
const { join } = realRequire('path')
|
|
|
|
|
|
|
|
|
|
async function main() {
|
|
|
|
|
// Similarly, this make sure the import call is not modified by the build tools
|
|
|
|
|
const localFunction = await realImport('./source.js')
|
|
|
|
|
|
|
|
|
|
localFunction()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
main().catch(console.error)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Contributing
|
|
|
|
|
|
|
|
|
|
See [CONTRIBUTING.md](./CONTRIBUTING.md)
|
|
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
|
|
Copyright Paolo Insogna and real-require contributors 2021. Licensed under the [MIT License](http://www.apache.org/licenses/MIT).
|