Как удалить расширение `.mjs` из import / require при переносе на обычный js с помощью babel - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь 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 не может быть использован.

Как исправить эту проблему без наивного поиска и замены?

...