Javascript Browserify can';找不到本地模块

Javascript Browserify can';找不到本地模块,javascript,reactjs,gruntjs,browserify,Javascript,Reactjs,Gruntjs,Browserify,我有同样的问题,但与本地组件 那是我的树: app | - assets | - js | - app.jsx | - MainComponent.jsx 但当我运行命令时: macpro:app user$browserify assets/js/app.jsx>tesapp.js It响应错误: 错误:无法从中找到模块“MainComponent” “/Users/user/webstoreprojects/gowithme/app/ass

我有同样的问题,但与本地组件

那是我的树:

app
|
 - assets
  |
   - js
    |
     - app.jsx
    |
     - MainComponent.jsx 
但当我运行命令时:

macpro:app user$browserify assets/js/app.jsx>tesapp.js

It响应错误:

错误:无法从中找到模块“MainComponent” “/Users/user/webstoreprojects/gowithme/app/assets/js”

这是app.jsx文件的代码:

var React = require('react');
var ReactDOM =  require('react-dom');
var  MainComponent  = require('MainComponent');
console.log("Test",MainComponent);

加载带有
require
的本地模块(即自己的
.js
文件)时,需要给出相对路径:

var React = require('react');
var ReactDOM =  require('react-dom');
var  MainComponent  = require('./MainComponent'); //added ./ so now the path is relative
console.log("Test",MainComponent);
当使用绝对路径(如
require('fs')
require('react')
)时,节点将尝试加载本机模块(如
fs
path
等)或
节点中的模块


发生这种情况是因为您使用的是
.jsx
扩展。默认情况下,browserify无法识别未知扩展名。将
browserifyOptions
添加到grunt配置中,可能会有帮助:

options: {
    transform: [['babelify', {presets: ['es2015', 'react']}]],
    browserifyOptions: {
        debug: true,
        extensions: ['.jsx']
    }
}

我还建议省略
.jsx
的用法

使用本地模块时需要使用本地路径,例如:
require('../../MainComponent')
。绝对路径用于获取
node_模块
modules。它不是节点模块,MainComponet与app.jsxSame问题处于同一级别。/Error:not find module./MainComponent'from/Users/user/webstorprojects/gowithme/app/assets/jse感谢您节省了我的时间。我不知道该怎么修。