【问题标题】:Meteor + React issue where once I add a router to my project, it rejects my import from .scss because it expects a node moduleMeteor + React 问题,一旦我将路由器添加到我的项目,它会拒绝我从 .scss 导入,因为它需要一个节点模块
【发布时间】:2026-01-08 00:00:01
【问题描述】:

我的应用程序在没有路由器的情况下运行良好。我正在使用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'));
});

它可以工作,但是当我添加 react 或 flow 路由器并创建路由时它不起作用:

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 包(或者至少这是我对正在发生的事情的解释)。

【问题讨论】:

    标签: meteor reactjs flow-router react-css-modules


    【解决方案1】:

    我想出了一个解决办法!

    我的基本假设可能是错误的,但我认为这与加载顺序有关。我将我的路由从标准 lib/ 文件夹移到了我的 imports/ 文件夹中,其中还有我的其他反应模块。然后我只是在我的 client/main.jsx 中导入/需要路由,它就起作用了!

    【讨论】:

      最近更新 更多