打开Harmony模式 - 如何运行ReactJS v0.13?

时间:2015-02-13 11:24:42

标签: gruntjs gulp reactjs ecmascript-harmony

我正在关注this comment我被告知打开和声模式以便使用ReactJS v0.13的破坏作业。

我已经google了一下,无法找到关于如何打开它的好答案。

如果启用Harmony模式是一个坏主意,那么我必须使用ReactJS的最高版本是什么?

更新 开发工作流程将使用grunt或gulp。

2 个答案:

答案 0 :(得分:1)

您的问题没有一个答案,因为它取决于您的开发构建工作流程。

如果您使用node-jsx npm包,例如:

require('node-jsx').install({harmony: true});

如果您使用命令行编译器:

JSX filename -harmony

webpack有一个解决方案,grunt等。

WebPack例如使用加载程序标志:

// webpack.config.js
module.exports = {
  entry: './main.js',
  output: {
    filename: 'bundle.js'       
  },
  module: {
    loaders: [
      { test: /\.jsx$/, loader: 'jsx-loader?harmony' }
    ]
  },
  resolve: {
    // you can now require('file') instead of require('file.jsx')
    extensions: ['', '.js', '.json', '.jsx'] 
  }
};

option for gulp的作用如下:

var gulp = require('gulp');
var react = require('gulp-react');

gulp.task('default', function () {
    return gulp.src('template.jsx')
        .pipe(react({harmony: true}))  // enable harmony features
        .pipe(gulp.dest('dist'));
});

答案 1 :(得分:0)

如果您使用v0.11及更高版本的反应和jsx库的cdn版本

e.g。

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.0-beta.1/react.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.0-beta.1/JSXTransformer.js"></script>

只需相应更改脚本标记即可通过添加和谐模式;和谐=真实

<script type="text/jsx;harmony=true">
/** @jsx React.DOM */
    var APP = React.createClass({
        render: function() {
            return (
                <div>
                    <BButton className="btn-primary" href="javascript:alert('hello');" ><BHeart /> React</BButton> // and so on..

归功于Facebook docs on v0.11