1

我们当前的基础设施依赖于 Titanium 来实现原生。我正在尝试使用https://www.npmjs.com/package/grunt-titaniumifier将我的节点项目转换为 CommonJS 。但是,它在 JSX 上失败了:

return (
  <div className="App">
    <EnergyChart width="1000" data={JSONData.data} customerID={customerID} lineColor='#FF0' height="500" marginTop="20" marginLeft="50" marginBottom="20" marginRight="20" />
  </div>
);

Browserify 工作正常,因为它使用如下变换:

browserify: {


  app: {
    src: 'app/App.js', dest: 'dist/bundle.js',
    options: {
        transform: ['grunt-less-browserify', require('grunt-react').browserify],
    }
  },

}

对于钛化剂,我有以下内容:

"titaniumifier": {
  "module": {
    files: {
      // The package is in "." and the zipfile will be written in "."
      ".": "."

    },

  },
  options: {
      transform: [ require('grunt-react').browserify],
  }
}

但是运行grunt titaniumifier:module返回

致命错误:解析文件 /Users/rduckworth/Projects/titanium-d3/app/App.js:意外令牌 (23:6)

这是上面的 JSX 代码。

无论如何我可以让 Titaniumifier 像 browserify 那样编译 JSX 吗?

4

1 回答 1

1

@rickyduck这里是 Titanifier 的创建者和维护者。我很抱歉我错过了这个问题。

您可以使用我在 Wiki上为您的应用程序启用它的相同语法为您的包/模块启用 Babel 转译。

长话短说:

  1. Babel添加为依赖项
  2. 使用package.jsontitaniumifier.transforms的对象

一个例子:

{
  "devDependencies": { ".." },
  "titaniumifier": {
    "transforms": {
      "babel": { "presets": [ "es2015" ] }
    }
  }
}
于 2015-12-28T17:14:39.847 回答