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感谢您节省了我的时间。我不知道该怎么修。