首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >吞咽babel -预置-反应而不是转换JSX代码

吞咽babel -预置-反应而不是转换JSX代码
EN

Stack Overflow用户
提问于 2016-11-21 13:27:49
回答 1查看 853关注 0票数 1

我有问题要用gulp编译jsx代码。我的gulpfile.js是这样的-

代码语言:javascript
复制
const gulp = require('gulp');
const babel = require('gulp-babel');

gulp.task('js', () => {
    return gulp.src('src/main.js')
        .pipe(babel({
            presets: ['es2015', 'react']
        }))
        .pipe(gulp.dest('build'));
});

gulp.task('default', ['js'], () => {
    gulp.watch('src/main.js', ['js']);
});

在我的包json文件中

代码语言:javascript
复制
  "devDependencies": {
    "babel-preset-es2015": "^6.18.0",
    "babel-preset-react": "^6.16.0",
    "gulp": "^3.9.1",
    "gulp-babel": "^6.1.2"
  },
  "dependencies": {
    "react": "^15.4.0",
    "react-dom": "^15.4.0"
  }

当我放入es2015代码时,它确实会进行转换。但jsx代码并没有进行转换。

我试着编译以下代码-

代码语言:javascript
复制
import Hello from './hello.jsx';
import World from './world.jsx';


[1,2,3].map(n => console.log(n + 1));

但它只符合es6代码,而不是jsx。

代码语言:javascript
复制
'use strict';

var _hello = require('./hello.jsx');

var _hello2 = _interopRequireDefault(_hello);

var _world = require('./world.jsx');

var _world2 = _interopRequireDefault(_world);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

[1, 2, 3].map(function (n) {
  return console.log(n + 1);
});

我还和webpack试过,发现babel-preset-react在工作,而gulp-babel却没有。在以前,我使用了另一个gulp工具来编译,但是这次我想使用gulp,但它似乎不像预期的那样工作。

任何形式的帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-22 05:38:52

感谢“斯文”赫克托指点我。

我让它与我的传统方法,浏览器化和巴贝尔化。下面是它的样子

代码语言:javascript
复制
const gulp = require('gulp');
const browserify  = require('browserify');
const babelify = require('babelify');
const source = require('vinyl-source-stream');

gulp.task('js', () => {
    return browserify({ entries: ['src/main.js'] })
        .transform(babelify, {presets: ["react", "es2015"]}) // "es2015", "react"
        .bundle()
        .pipe(source('main.js'))
        .pipe(gulp.dest('build'));
});

或者,如果你有问题,请使用webpack,或者对于吸食风扇,请使用gulp webpack。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40721350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档