Socket
Socket
Sign inDemoInstall

babel-plugin-replace-require

Package Overview
Dependencies
1
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    babel-plugin-replace-require

Replace require output generated from import calls.


Version published
Weekly downloads
4
increased by300%
Maintainers
1
Install size
289 kB
Created
Weekly downloads
 

Changelog

Source

0.0.4

  • Preserve loc when rewriting requires. #2

Readme

Source

babel-plugin-replace-require

npm version

Replace require output generated from import calls.

There are often situations where you'd like to pass a different require function into a require("foo") call like specialOtherRequire("foo"). This is quite easy in CommonJS, yet challenging in ES-next import's because the outputted require is not directly under user control.

This plugin allows import statements to conditionally have the require call rewritten in generated output.

Installation

The plugin is available via npm:

$ npm install babel-plugin-replace-require

Usage

Provide an object of token, code replacement string pairs. The code replacement expressions are actually parsed and inserted into the AST.

.babelrc: Our configuration

{
  "plugins": [
    ["replace-require", {
      "GLOBAL_REQUIRE": "global.myBetterRequire",
      "REQUIRED_REQUIRE": "require('require-from-somewhere-else')"
    }]
  ]
}

src/index.js: A source file with es6 / Node.js type imports.

// es6 style
import foo from "GLOBAL_REQUIRE/foo";

// CommonJS style
const foo = require("REQUIRED_REQUIRE/foo");

lib/index.js: The outputted file, processed by the plugin.

// es6 style
var _foo = global.myBetterRequire("foo");

var _foo2 = _interopRequireDefault(_foo);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// CommonJS style
var bar = require('require-from-somewhere-else')("bar");

Builder

This plugin was written to help implement the module pattern in builder archetypes for enabling dependency encapsulation.

Webpack

This plugin is useful for code patterns that work in Node.js for alternate require's. If the code needs to run on the frontend via webpack, the webpack-alternate-require-loader can further process the output of this plugin into fully-resolved modules analogous to what Node.js would do.

Contributions

Contributions welcome! See CONTRIBUTING.md

Keywords

FAQs

Last updated on 30 Nov 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc