Browserify-rails无法加载包含JSX的js文件

时间:2016-08-27 19:37:52

标签: javascript ruby-on-rails browserify-rails

我添加了browserify-rails,以便我可以将Ract包含在我的Rails应用程序中。 我能够导入和导出模块。例如。我的todos.js执行hello_world.js的导出函数。但加载包括JSX在内的文件会破坏一切。

我错过了什么? :-( 整个Rails应用程序是available at Github。 请参阅 browserify-rails 分支。

application.rb

config.browserify_rails.commandline_options = "-t [ babelify --presets [ es2015 react ] ]"

应用/资产/ Javascript角/ todos.js

import Hello from "hello_world";
let hello = new Hello();
console.log( "GREET: " + hello.greet() );

// Everything breaks if I add the section below. 
// Why isn't the JSX code transpiled correct? 
// I do have babel in my package.json.
ReactDOM.render(
    <h1>Hello, world!</h1>h1>,
    document.getElementById('example')
);

应用/资产/ Javascript角/ hello_world.js

class Hello {
  greet() {
    return "Hello world!";
 }
}

export default Hello;

的package.json

{
  "name": "something",
  "dependencies": {
    "babel-preset-react": "^6.11.1",
    "browserify": "~10.2.4",
    "browserify-incremental": "^3.0.1",
    "react": "^15.3.1",
    "react-dom": "^15.3.1"
  },
  "license": "MIT",
  "engines": {
    "node": ">= 0.10"
  }
}

1 个答案:

答案 0 :(得分:0)

您也应该安装babel-presets-es2015。只需在package.json中添加最新版本。