0

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

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

应用程序.rb

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

应用程序/资产/javascripts/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')
);

应用程序/资产/javascripts/hello_world.js

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

export default Hello;

包.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"
  }
}
4

1 回答 1

0

你也应该安装babel-presets-es2015。只需将其添加package.json到最新版本即可。

于 2017-04-16T13:08:55.333 回答