@tybys/native-require
TypeScript icon, indicating that this package has built-in type declarations

3.0.3 • Public • Published

native-require

Try to get native require function in any environment.

$ npm install @tybys/native-require

When should you use this package

If you want to write a library which supports both Node.js and browser, and you hope it can be work well with webpack, you can use this package instead of writing __non_webpack_require__ directly in your code.

Usage:

Webpack

Plugin is not neccesary.

const { NativeRequireWebpackPlugin } = require('@tybys/native-require/plugins/webpack.js')

module.exports = {
  /* ... */
  plugins: [
    new NativeRequireWebpackPlugin()
  ]
}

CommonJS:

const { tryGetRequireFunction } = require('@tybys/native-require/index.js') // index.js can not be omitted
const nativeRequire = tryGetRequireFunction()
if (typeof nativeRequire === 'function') {
  // ...
}

ESM format input / TypeScript:

import { tryGetRequireFunction } from '@tybys/native-require'
const nativeRequire = tryGetRequireFunction()
if (typeof nativeRequire === 'function') {
  // ...
}

Rollup

NOTE: If you are using commonjs require('@tybys/native-require/index.js') with @rollup/plugin-commonjs, you need to add @tybys/native-require/plugins/rollup.js.

const { nativeRequireRollupPlugin } = require('@tybys/native-require/plugins/rollup.js')

module.exports = {
  plugins: [
    nativeRequireRollupPlugin(),
    /* commonjs node-resolve ... */
  ]
}
const { tryGetRequireFunction } = require('@tybys/native-require/index.js') // index.js can not be omitted

ESM / TypeScript:

import { tryGetRequireFunction } from '@tybys/native-require'
const nativeRequire = tryGetRequireFunction()
if (typeof nativeRequire === 'function') {
  // ...
}

Browser (Generally do not use) / Electron renderer process

<script src="node_modules/@tybys/native-require/dist/native-require.js"></script>
<script>
  (function () {
    var nativeRequire = nr.tryGetRequireFunction(typeof module !== 'undefined' ? module : undefined)();
    if (typeof nativeRequire === 'function') {
      // ...
    }
  })();
</script>

Examples are in test folder.

Readme

Keywords

none

Package Sidebar

Install

npm i @tybys/native-require

Weekly Downloads

54

Version

3.0.3

License

MIT

Unpacked Size

16.8 kB

Total Files

12

Last publish

Collaborators

  • toyobayashi