Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
babel-plugin-replace-require
Advanced tools
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.
The plugin is available via npm:
$ npm install babel-plugin-replace-require
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");
This plugin was written to help implement the
module pattern in builder
archetypes for enabling dependency encapsulation.
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 welcome! See CONTRIBUTING.md
FAQs
Replace require output generated from import calls.
We found that babel-plugin-replace-require demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.