Я пытаюсь go полной версии ESM с моей библиотекой, но я хотел сохранить транспортировку в Common JS версию в dist
каталоге моего библиотечного пакета
Так что у меня есть немного .m js файлов в src
dir, я импортирую их как:
index. js
import utils from "./utils.mjs"
^ важная вещь здесь использует .mjs
расширение при импорте. ESM требует, чтобы я сделал это.
Теперь я перемещаюсь, используя babel cli, с простым: babel src -d dist
мой babelr c:
const env = process.env.NODE_ENV || "production";
const config = {
presets: [
[
"@babel/env",
{
"targets": {
"browsers": [
"> 3%"
]
},
"useBuiltIns": "entry",
"corejs": 2
}
]
],
plugins: [
env === "testing" ? "rewire" : null
].filter(Boolean),
};
module.exports = config;
В В каталоге dist
находятся мои файлы, перенесенные ПОЧТИ так, как я хотел, чтобы они были.
Проблема в том, что мой dist/index.js
теперь имеет:
var _utils = _interopRequireDefault(require("./utils.mjs"));
.m js здесь хранится расширение, но у перенесенных файлов его нет, и код из dist
не может быть использован.
Как исправить эту проблему без наивного поиска и замены?