Добавить несколько каталогов для файла пакета в rails webpacker - PullRequest
0 голосов
/ 04 мая 2020

Внутри моего каталога app/javascript/components/ у меня есть 3 каталога admin/, employee/ и shared/.

Общее js между admin и employee хранятся в каталоге shared .

Я также создал два файла пакета employee.js и admin.js.

admin. js

import 'core-js/stable';
import "regenerator-runtime/runtime";
var componentRequireContext = require.context("components/admin/", true);
var ReactRailsUJS = require("react_ujs");
ReactRailsUJS.useContext(componentRequireContext);

и то же самое для сотрудника. js за исключением того, что он скомпилирует все внутри employee/ dir.

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

Файл внутри * Каталог 1027 * импортирует модули из каталога shared, и он не может их найти.

Итак, как мне это исправить?

Обновление 1

Я использовал символическую ссылку на Найди решение. Сначала это выглядело, как будто это работает, но оказалось, что символические ссылки устарели c, и это сломается в чужой системе.

Обновление 2

Не могу найти другие способы, поэтому я отредактировал bin / webpack и bin / webpack-dev-server и добавьте общую папку с символическими ссылками в gitignore

Dir.chdir(APP_ROOT) do
  `ln -s #{APP_ROOT}/app/javascript/components/shared/ #{APP_ROOT}/app/javascript/components/admin/ `
  `ln -s #{APP_ROOT}/app/javascript/components/shared/ #{APP_ROOT}/app/javascript/components/employee/ `
  Webpacker::WebpackRunner.run(ARGV)
end

Все еще интересуетесь, есть ли другие способы

...