Можно ли искать модуль js в 2 разных папках, отдавая приоритет одной над другой?

Мне нужно создать настраиваемое веб-приложение, и я подумал, можно ли и как использовать загрузку модуля es6 в сочетании с веб-пакетом для переопределения отдельных файлов большого стека приложений.

Итак, давайте предположим, что у меня есть структура каталогов, как:

./src
|--/core
|--|--moduleA.js
|--|--moduleB.js
|--|--app.js
|--/theme
|--|--moduleB.js

и мой контент app.js похож

import moduleA from "./moduleA";
import moduleB from "./moduleB";

console.log(moduleA); // out: i am from core!
console.log(moduleB); // out: i am from theme!

Таким образом, каталог theme / просто переопределяет файлы ядра...

Есть ли способ решить эту проблему с помощью конфигурации загрузчика веб-пакетов или мне нужно запустить предварительную сборку, в которой я копирую все файлы из ядра в третье местоположение, затем то же самое для каталога темы, за которым следует сборка из этого третьего каталог.

Я знаю, как решить эту проблему с помощью третьего расположения и объединить файлы src, но я бы предпочел решить эту проблему с помощью веб-пакета.

1 ответ

Решение

Это должно быть возможно с модулями разрешения.
Вы можете добавить оба core а также theme как модули. определять theme Сначала веб-пакет выглядит там первым.

modules: [
    path.resolve(__dirname, "src/theme"),
    path.resolve(__dirname, "src/core"),
    'node_modules',
]

Затем импортируйте модули без относительного пути. Просто from "moduleA"

Другие вопросы по тегам