如何让browserify-rails转换es6文件?

时间:2015-09-04 20:38:41

标签: ruby-on-rails ruby asset-pipeline browserify-rails

我刚刚用browserify-rails和Rails 4.2创建了一个新项目。我的package.json看起来像这样:

{
  "name": "neat-verify",
  "dependencies": {
    "browserify": "~> 10.2.4",
    "browserify-incremental": "^3.0.1",
    "es6ify": "^1.6.0",
    "nuclear-js": "^1.1.1",
    "react": "^0.13.3",
    "reactify": "^1.1.1"
  },
  "browserify": {
    "transform": [
      [
        "reactify",
        "es6ify"
      ]
    ]
  },
  "license": "MIT",
  "engines": {
    "node": ">= 0.10"
  }
}

一切安装都很好,但当我尝试用这个加载我非常简单的es6文件时:

module.exports = n =>  n * 11;

文件内容完全符合上述要求,因为这不是ES5。

如何让它真正实现这一点呢?

1 个答案:

答案 0 :(得分:1)

所以,在尝试了很多之后,我放弃使用browserify-rails来执行转换并决定使用react-rails,更简单,我需要转换JSX和ES6包含此配置:

config.react.jsx_transform_options = {
  whitelist: [
    "es6.arrowFunctions",
    "es6.classes",
    "react",
  ]
}

现在名为foo.js.jsx的文件包含:

var log = msg => console.log(msg);

class Hello extends React.Component {

    render() {
        return <div>Hello, {this.props.name}!</div>
    }
}

正确转换并包含在application.js