我正在玩ES6,Gulp和Browserify,我正在设置环境的第一步. 这是我的browserify task: gulp.task('client', cb = {return browserify({ entries: paths.publicEntries, extensions: ['.jsx'], debug: true }) .transform('babelify', { pr
          这是我的browserify task:
gulp.task('client', cb => {
return browserify({
        entries: paths.publicEntries, 
        extensions: ['.jsx'], 
        debug: true
    })
    .transform('babelify', {
        presets: ['es2015', 'react']
    })
    .bundle()
    .pipe(source(paths.bundle))
    .pipe(gulp.dest(paths.bundleDest));
}); 
 这可能是主脚本index.jsx
'use strict';
import React from 'react';
import ReactDOM from 'react-dom';
import TestPage from './components/test';
(() => {
  ReactDOM.render(
    <TestPage/>,
    document.getElementById('mainContainer')
  );
})(); 
 这是我创建的组件test.jsx
'use strict';
import React from 'react';
class TestPage extends React.Component {
  render()
  {
    return <h1> Hello World! </h1>
  }
}
export default TestPage; 
 一切看起来都对我来说,但是使用index.jsx中的import语句有一种奇怪的行为(我不知道问题出在哪里).
为了确定什么工作,什么不工作,我替换了我的组件导入实际代码,如下所示:
'use strict';
import React from 'react';
import ReactDOM from 'react-dom';
//import TestPage from './components/test';
class TestPage extends React.Component {
  render()
  {
    return <h1> Hello World! </h1>
  }
}
(() => {
  ReactDOM.render(
    <TestPage/>,
    document.getElementById('mainContainer')
  );
})(); 
  
 这里一切正常,但如果我使用标准的import语句,我什么都得不到:
注意:
> .component/test.jsx和./index.jsx正确加载.
>当我跑步时,我没有任何错误.
>反应,反应模块正在工作.
>我尝试使用另一个路径到我的组件./public/js/component/test.jsx但是在运行我的gulp任务时出现错误错误:无法从’/找到模块’./public/js/components/test’ Users / myuser / project / public / js’意味着它正在寻找正确的模块,就像现在一样,但不是在浏览器中.
>尝试使用和不使用.jsx扩展,同样的情况.
如果有人想要深入了解这里的回购:
https://github.com/nramirez/gulp_browserify_es6_babel_react
为了正确导入我的组件,我缺少什么?
您正在gulpfile.babel.js中为您的应用创建多个入口点(基本上,您正在创建两个捆绑包).const paths = {
  src: './src',
  publicSrc: './public/js',
  dest: './app',
  bundle: 'bundle.js',
  bundleDest: './app/public/js',
  publicEntries: [
    './public/js/index',
    './public/js/components/test' <--- Remove this line.
  ]
};
        
             