~kprieb/babel-plugin-add-import-extension

A babel plugin to add extensions to import declarations.
6e935e3b — Karl Prieb 3 months ago
release: v1.4.3
67384c55 — Karl Prieb 3 months ago
release: v1.4.1
cb0adebe — Karl Prieb 3 months ago
chore: update readme

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~kprieb/babel-plugin-add-import-extension
read/write
git@git.sr.ht:~kprieb/babel-plugin-add-import-extension

You can also use your local clone with git send-email.

#babel-plugin-add-import-extension builds.sr.ht status

A plugin to add extensions to import and export declarations, is very useful when you use Typescript with Babel and don't want to explicity import or export module with extensions.

#How to install:

# using npm
npm install --save-dev babel-plugin-add-import-extension
# usin yarn
yarn add -D babel-plugin-add-import-extension

Add to your plugins on your babel config file:

plugins: ["babel-plugin-add-import-extension"]; // defaults to .js extension

Is possible to set the extension when you set the plugin:

plugins: [
  ["babel-plugin-add-import-extension", { extension: "jsx" }], // will add jsx extension
];

You can also replace existing extensions with the one you want

plugins: [
  ["babel-plugin-add-import-extension", { extension: "jsx", replace: true }], // will add jsx extension
];

#Let's the transformation begin :)

A module import without extension:

import { add, double } from "./lib/numbers";

will be converted to:

import { add, double } from "./lib/numbers.js";

A module export without extension:

export { add, double } from "./lib/numbers";

will be converted to:

export { add, double } from "./lib/numbers.js";

If you add the replace:true option, extensions will be overwritten like so

import { add, double } from "./lib/numbers.ts";

will be converted to:

import { add, double } from "./lib/numbers.js";

and

export { add, double } from "./lib/numbers.ts";

will be converted to:

export { add, double } from "./lib/numbers.js";

What this plugin does is to check all imported modules and if your module is not on node_module it will consider that is a project/local module and add the choosed extension, so for node modules it don't add any extension.

#Resources

Send patches and questions to ~kprieb/babel-plugin-add-import-extension@lists.sr.ht.

Bugs & todo here: ~kprieb/babel-plugin-add-import-extension