带有TypeScript和TSX且没有babelrc的包裹?

时间:2019-07-18 18:56:21

标签: typescript parceljs infernojs

我只是了解了parceljs并发现它非常令人愉快,只有一件事似乎有点过大了:

我正在使用parceljs将Infernojs的tsx文件转换为javascript。 但是,生成的代码包含原始的React.createElement函数,该函数显然不起作用:

inferno_1.render(React.createElement("div", null, "woot"), document.getElementById("app"));

我看过一些示例,该示例使用带有babel-plugin-inferno插件的.babelrc文件,该文件似乎有效,但是由于添加了各种babel依赖关系,我只是想知道是否没有一种方法来指定转换函数,而不需要所有额外的行李。 (因为包裹似乎很简单)

1 个答案:

答案 0 :(得分:1)

类似地,您只需在tsconfig中设置“ jsxFactory”:“ h”,然后从计划使用它的“ inferno-hyperscript”导入它。

tsconfig:

{
  "compilerOptions": {
    "target": "es5",    
    "jsx":"react",
    "jsxFactory":"h",
    "lib":["dom","ESNext"],
    "module": "commonjs",    
    "strict": true,    
    "moduleResolution":"Node",
    "esModuleInterop": true,    
    "forceConsistentCasingInFileNames": true 
  },  
  "include":["src"]
}

在代码中使用:

import { h } from 'inferno-hyperscript';

function App() {
    return (
      <div className="App">
        Hello thar
      </div>
    );  
}

export default App;

您可能会以类似的方式使用inferno-create-element,但我只尝试了htags。

示例: https://github.com/jayy-lmao/inferno-parcel-ts