babel-plugin-module-rewrite
A babel plugin to rewrite module imports (and require
) using a custom function
Description
You can supply a replace function to dynamically replace module paths when Babel traverses them.
Usage
Install the plugin
$ npm install --save-dev babel babel-plugin-module-rewrite
Specify the plugin in your .babelrc
with the file that exports the replace function.
{
"plugins": [
["module-rewrite", { "replaceFunc": "./utils/replace-module-paths.js" }]
]
}
Let's say you want ~/moduleFile
to be replaced to utils/moduleFile
if the calling file is in utils
, and common/moduleFile
otherwise.
So in your replace-module-paths.js
, just export:
export default function replaceImport(originalPath, callingFileName, options) {
if(callingFileName.indexOf('/utils/') !== -1) {
return originalPath.replace('~', 'utils');
} else {
return originalPath.replace('~', 'common');
}
}
License
MIT