Проблема Meteor + React, из-за которой, как только я добавляю маршрутизатор в свой проект, он отклоняет мой импорт из .scss, поскольку ожидает модуль узла

Мое приложение прекрасно работает без роутера. Я использую пакет nathantreid:css-modules, который позволяет использовать модульный css для ваших реагирующих компонентов. В моем каталоге imports/ui/Navbar у меня есть Navbar.jsx, содержащий:

// Custom Dependencies
import s from './Navbar.scss';
import NavButton from './NavButton/NavButton';

Когда у меня есть приложение, загружающее компоненты в client/main.jsx со следующим:

Meteor.startup(() => {
  render(<App />, document.getElementById('render-target'));
});

Это работает, но не работает, когда я добавляю реагирующий или потоковый маршрутизатор и создаю маршрут:

FlowRouter.route('/', {
  action() {
    mount(App);
  }
});

Выдает следующее:

W20160520-10:09:25.659(-7)? (STDERR) Error: Cannot find module './Navbar.scss'
W20160520-10:09:25.659(-7)? (STDERR) at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:78:1)
W20160520-10:09:25.659(-7)? (STDERR) at meteorInstall.imports.ui.Navbar.Navbar.jsx (imports/ui/Navbar/Navbar.jsx:7:1)
W20160520-10:09:25.659(-7)? (STDERR) at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:141:1)

Был бы признателен за любую техническую информацию о том, как я мог бы решить эту проблему.

Также я хотел бы отметить, что я пробовал относительный и абсолютный путь, но основная проблема заключается в том, что он ищет пакеты NPM только в тот момент, когда я добавляю маршрутизатор (или, по крайней мере, это моя интерпретация того, что происходит).


person Alex Akagi    schedule 20.05.2016    source источник


Ответы (1)


Я нашел решение!

Мое основное предположение может быть неверным, но я думаю, что это связано с порядком загрузки. Я переместил свои маршруты из стандартной папки lib/ в папку imports/, где у меня также есть другие модули реагирования. Затем я просто импортировал/требовал маршруты в моем клиенте/main.jsx, и это сработало!

person Alex Akagi    schedule 20.05.2016