Browserify:无法从“...”中找到模块“...”(Coffeescript + React)

Browserify: Cannot find module '...' from '...' (Coffeescript + React)

我正在使用 React 和 Browserify 并尝试要求一些组件,但我收到错误:

Error: Cannot find module './components/pages/Home' from '/.../.../reactCoffee/app/scripts'

有问题的文件是 index.cjsx(使用 coffeescript):

React = require 'react'
Router = require 'react-router'
Routes = Router.Routes
Route = Router.Route
DefaultRoute = Router.DefaultRoute

Home = require './components/pages/Home'
About = require './components/pages/About'

React.render((
  <Router>
    <Route name='home' path='/' handler={Home}>
      <Route name='about' path='about' handler={About} />
    </Route>
  </Router>
), document.querySelector '#spa')

我想要的文件是:

React = require 'react'
Header = require 'components/Header'
Footer = require 'components/Footer'
Store = require 'Store'
Actions = require 'Actions'

Home = React.createClass

  ...

  render: ->
    return
      <div>
        <Header />
          <h1> HI from React and CJSX </h1>
        <Footer />
      </div>

module.exports = Home

文件结构:

.
├── gulpfile.js
├── package.json
└── app
    ├── styles
    ├── index.html
    └── scripts
        └── index.cjsx
        └── components
            └── Header.cjsx
            └── Footer.cjsx
            └── pages
                └── Home.cjsx
                └── About.cjsx

指定文件的扩展名,因为 Browserify 不知道它

Home = require './components/pages/Home.cjsx'

或者您可以在 package.json 中添加类似的内容以通知 Browserify 附加文件扩展名。

"browserify": {
    "extension": [ "cjsx" ]
}