【问题标题】:How do I get browserify-rails to transpile es6 files?如何让 browserify-rails 转译 es6 文件?
【发布时间】:2015-09-04 20:38:41
【问题描述】:

我刚刚使用 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。

如何让它实际转译?

【问题讨论】:

  • 你得到了什么输出?我不确定是否仍然支持 es6ify。试试 babelify。

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


【解决方案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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 2015-04-27
    • 2020-08-15
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多