babel-plugin-import-path-remapper
@rnx-kit/babel-plugin-import-path-remapper remaps **/lib/** imports to
**/src/**. This is useful for packages that are not correctly exporting
everything via their index.ts, but you still want to consume the TypeScript
files rather than the transpiled JavaScript.
Add @rnx-kit/babel-plugin-import-path-remapper to your babel.config.js under
plugins. For example, to remap all paths under the @rnx-kit scope:
module.exports = { presets: ["module:@react-native/babel-preset"], overrides: [ { test: /\.tsx?$/, plugins: [ // @babel/plugin-transform-typescript doesn't support `const enum`s. // See https://babeljs.io/docs/en/babel-plugin-transform-typescript#caveats // for more details. "const-enum",
[ "@rnx-kit/babel-plugin-import-path-remapper", { test: (source) => source.startsWith("@rnx-kit/") }, ], ], }, ],};Or, if you’re using @rnx-kit/metro-config:
const { makeBabelConfig } = require("@rnx-kit/metro-config");module.exports = makeBabelConfig([ [ "@rnx-kit/babel-plugin-import-path-remapper", { test: (source) => source.startsWith("@rnx-kit/") }, ],]);Options
Section titled “Options”| Option | Type | Description |
|---|---|---|
| test | (source: string) => boolean |
[Required] A function returning whether the passed source should be redirected to another module. |
| remap | (moduleName: string, path: string) => string |
[Optional] A function returning the module that should be used instead, e.g. contoso/index.js -> contoso/index.ts. |