{"id":13727013,"url":"https://github.com/shimataro/babel-plugin-module-extension-resolver","last_synced_at":"2025-04-07T11:32:22.447Z","repository":{"id":54560402,"uuid":"231354656","full_name":"shimataro/babel-plugin-module-extension-resolver","owner":"shimataro","description":"Babel plugin that resolves and maps module extensions.","archived":false,"fork":false,"pushed_at":"2022-12-23T08:39:59.000Z","size":737,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2024-05-01T20:31:58.875Z","etag":null,"topics":["babel","babel-plugin"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/babel-plugin-module-extension-resolver","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shimataro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-02T10:02:09.000Z","updated_at":"2023-07-26T17:28:41.000Z","dependencies_parsed_at":"2023-01-30T18:01:28.225Z","dependency_job_id":null,"html_url":"https://github.com/shimataro/babel-plugin-module-extension-resolver","commit_stats":null,"previous_names":[],"tags_count":7,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimataro%2Fbabel-plugin-module-extension-resolver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimataro%2Fbabel-plugin-module-extension-resolver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimataro%2Fbabel-plugin-module-extension-resolver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimataro%2Fbabel-plugin-module-extension-resolver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shimataro","download_url":"https://codeload.github.com/shimataro/babel-plugin-module-extension-resolver/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247644691,"owners_count":20972342,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["babel","babel-plugin"],"created_at":"2024-08-03T01:03:35.661Z","updated_at":"2025-04-07T11:32:21.907Z","avatar_url":"https://github.com/shimataro.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# babel-plugin-module-extension-resolver\n\n[![Build Status (Windows)][image-build-windows]][link-build-windows]\n[![Build Status (macOS)][image-build-macos]][link-build-macos]\n[![Build Status (Linux)][image-build-linux]][link-build-linux]\n[![Examples][image-examples]][link-examples]\n[![Release][image-release]][link-release]\n[![Node.js version][image-engine]][link-engine]\n[![License][image-license]][link-license]\n\nBabel plugin that resolves and maps module extensions.\n\nInspired by [babel-plugin-extension-resolver](https://www.npmjs.com/package/babel-plugin-extension-resolver).\n\n## Examples\n\nBy default, all extensions except `.json` is converted into `.js`.\nThis behavior can be customized by [options](#options).\n\n### JavaScript\n\nDirectory structure:\n\n```text\nsrc\n├ dir\n│ ├ index.js\n│ └ lib.js\n├ main.js\n└ settings.json\n```\n\nInput (`main.js`):\n\n```javascript\nrequire(\"./dir/lib\");\nrequire(\"./dir/lib.js\");    // file exists\nrequire(\"./dir\");           // directory has \"index.js\"\nrequire(\"./settings\");      // \".json\" extension\nrequire(\"./no-such-file\");  // file NOT exists\nrequire(\"dir\");             // not begins with \".\"\n```\n\nOutput:\n\n```javascript\nrequire(\"./dir/lib.js\");\nrequire(\"./dir/lib.js\");\nrequire(\"./dir/index.js\");\nrequire(\"./settings.json\");\nrequire(\"./no-such-file\");\nrequire(\"dir\");\n```\n\n### JavaScript (`.mjs` extension)\n\nDirectory structure:\n\n```text\nsrc\n├ dir\n│ ├ index.mjs\n│ └ lib.mjs\n└ main.mjs\n```\n\n`.babelrc`:\n\n```json\n{\n  \"presets\": [\n    [\"@babel/preset-env\", {\"modules\": false}]\n  ],\n  \"plugins\": [\n    [\"module-extension-resolver\", {\n      \"extensionsToKeep\": [\".mjs\", \".json\"]\n    }]\n  ]\n}\n```\n\nInput (`main.mjs`):\n\n```javascript\nimport \"./dir/lib\";\nimport \"./dir\";\n\nexport * from \"./dir\";\n\nasync function foo() {\n    await import(\"./dir/lib\");\n}\n```\n\nRun:\n\n```bash\nbabel src --keep-file-extension\n```\n\nOutput:\n\n```javascript\nimport \"./dir/lib.mjs\";\nimport \"./dir/index.mjs\";\n\nexport * from \"./dir/index.mjs\";\n\nasync function foo() {\n    await import(\"./dir/lib.mjs\");\n}\n```\n\n### TypeScript\n\nDirectory structure:\n\n```text\nsrc\n├ dir\n│ ├ index.ts\n│ └ lib.ts\n└ main.ts\n```\n\nInput (`main.ts`):\n\n```typescript\nimport \"./dir/lib\";\nimport \"./dir\";\n```\n\nOutput:\n\n```javascript\nimport \"./dir/lib.js\";\nimport \"./dir/index.js\";\n```\n\nFor complete project, see below examples.\n\n|Language|CommonJS|ES Modules|\n|---|---|---|\n|ECMAScript with `@babel/preset-env`|[babel-cjs](./examples/babel-cjs)|[babel-esm](./examples/babel-esm)|\n|TypeScript with `@babel/preset-typescript`|[ts-babel-cjs](./examples/ts-babel-cjs)|[ts-babel-esm](./examples/ts-babel-esm)|\n|TypeScript with `tsc` and Babel|[ts-tsc-cjs](./examples/ts-tsc-cjs)|[ts-tsc-esm](./examples/ts-tsc-esm)|\n\n## Install\n\n```bash\nnpm i -D babel-plugin-module-extension-resolver\n```\n\n## `.babelrc`\n\n```json\n{\n  \"plugins\": [\"module-extension-resolver\"]\n}\n```\n\nWith options:\n\n```json\n{\n  \"plugins\": [\n    [\"module-extension-resolver\", {\n      \"srcExtensions\": [\".js\", \".cjs\", \".mjs\", \".es\", \".es6\", \".ts\", \".node\", \".json\"],\n      \"dstExtension\": \".js\",\n      \"extensionsToKeep\": [\".json\"]\n    }]\n  ]\n}\n```\n\n## Options\n\n### `srcExtensions`\n\nsource extensions to resolve\n\n**defaults:**\n\n```json\n[\n  \".js\",\n  \".cjs\",\n  \".mjs\",\n  \".es\",\n  \".es6\",\n  \".ts\",\n  \".node\",\n  \".json\"\n]\n```\n\n### `dstExtension`\n\ndestination extension\n\n**defaults:**\n\n```json\n\".js\"\n```\n\n### `extensionsToKeep`\n\nextension to keep\n\n**defaults:**\n\n```json\n[\n  \".json\"\n]\n```\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md).\n\n[image-build-windows]: https://github.com/shimataro/babel-plugin-module-extension-resolver/workflows/Windows/badge.svg?event=push\n[link-build-windows]: https://github.com/shimataro/babel-plugin-module-extension-resolver\n[image-build-macos]: https://github.com/shimataro/babel-plugin-module-extension-resolver/workflows/macOS/badge.svg?event=push\n[link-build-macos]: https://github.com/shimataro/babel-plugin-module-extension-resolver\n[image-build-linux]: https://github.com/shimataro/babel-plugin-module-extension-resolver/workflows/Linux/badge.svg?event=push\n[link-build-linux]: https://github.com/shimataro/babel-plugin-module-extension-resolver\n[image-examples]: https://github.com/shimataro/babel-plugin-module-extension-resolver/workflows/Examples/badge.svg?event=push\n[link-examples]: https://github.com/shimataro/babel-plugin-module-extension-resolver\n[image-release]: https://img.shields.io/github/release/shimataro/babel-plugin-module-extension-resolver.svg\n[link-release]: https://github.com/shimataro/babel-plugin-module-extension-resolver/releases\n[image-engine]: https://img.shields.io/node/v/babel-plugin-module-extension-resolver.svg\n[link-engine]: https://nodejs.org/\n[image-license]: https://img.shields.io/github/license/shimataro/babel-plugin-module-extension-resolver.svg\n[link-license]: ./LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshimataro%2Fbabel-plugin-module-extension-resolver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshimataro%2Fbabel-plugin-module-extension-resolver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshimataro%2Fbabel-plugin-module-extension-resolver/lists"}