Внутри моего каталога 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
Все еще интересуетесь, есть ли другие способы