加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – React,ES6与Browserify,babel和gulp一起编译,发出导

发布时间:2020-12-15 16:16:03 所属栏目:百科 来源:网络整理
导读:我正在玩ES6,Gulp和Browserify,我正在设置环境的第一步. 这是我的browserify task: gulp.task('client',cb = {return browserify({ entries: paths.publicEntries,extensions: ['.jsx'],debug: true }) .transform('babelify',{ presets: ['es2015','react'
我正在玩ES6,Gulp和Browserify,我正在设置环境的第一步.

这是我的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')
  );
})();

enter image description here

这里一切正常,但如果我使用标准的import语句,我什么都得不到:

enter image description here

注意:

> .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.
  ]
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读