Я повторно использую Компоненты React из Проект "Вояджер". После сборки Voyager (yarn build) я могу импортировать компоненты в свой собственный проект следующим образом:
import { DataPane } from 'datavoyager/build/components/data-pane/index';
Но у меня одна проблема: файл index.js будет содержать такие строки:
var styles = require("./data-pane.scss");
Однако этот файл data-pane.scss не был экспортирован в папку /build во время yarn build.
Я знаю, что data-pane.scss находится в /src/components/data-pane/. Но как мне скопировать файлы .scss каждого компонента с /src/components/ на /build/components?
Смотрел их сценарий сборки. Следует ли мне использовать fs.copySync() для копирования каждого .scss?
Еще посмотрел webpack.config.prod.js. Конфигурация, связанная с scss, выглядит так:
.scss как .css во время сборки. Я просто хочу скопировать и вставить исходный .scss в папку сборки.




Решаю проблему добавлением функции в Voyager scripts/build.js
// Copy scss files from /src/components/ to /build/components/ for external app to use Voyager components
function copyScss() {
fs.copySync(path.resolve(__dirname, '../src/components'), path.resolve(__dirname, '../build/components'), {
dereference: true,
filter: (path) => {
if (fs.lstatSync(path).isDirectory()) {
return true;
} else {
return path.endsWith('.scss');
}
}
});
}