我可以使用ANT来编译/转换React代码吗?

slmsl1lt  于 2022-10-24  发布在  React
关注(0)|答案(1)|浏览(112)

可以使用ApacheAnt编译REACTION JSX代码吗?在你问“为什么”之前,需要一些背景知识。我们目前有一个相对较旧的网络应用程序,它是用蚂蚁脚本构建的。服务器代码是Java,前端混合使用JSF、Struts、JSP和AngularJS(不是新的Angular )。(是的,它是有机增长的,它就像是不断发展的网络技术的展示!)所以,我们都知道AngularJS已经过时了,我们想看看是否可以在Reaction中加入新的UI设计(这是另一个问题的另一个障碍)。因此,假设我们以某种方式创建或获取了一组我们想要使用的Reaction组件,我认为JSX将需要以某种方式编译/转译为实际的Java脚本(不像AngularJS,我们只需将文件复制到正确的位置)。通常,对于节点,我们可以以某种方式包括巴别塔或类似的东西来完成它。那么,这在蚂蚁身上是可能的吗?(或者也许我应该先问我的另一个问题,即在AngularJS中混合React的理智吗?)
谢谢!

xkftehaa

xkftehaa1#

因此,根据这些评论,我对蚂蚁高管进行了修改,并安装了Babel cli,从而解决了这个问题。以下是步骤:
1.全局安装babel cli(这样我的构建系统就可以无忧地访问服务器):npm install --location=global @babel/core @babel/cli @babel/preset-env @babel/preset-react
1.在Build.xml中添加定义和目标,从jsx.src.dir中获取jsx,并将其转换为jsx.dst.dir中的js:
Build.xml:

<property environment="env"/>   
<property name="jsx.src.dir" value="./src" />
<property name="jsx.dst.dir" value="./target/js" />
<condition property="jsx.cmd" value="cmd">
  <os family="windows"/>
</condition>
<condition property="jsx.cmd" value="babel">
   <os family="unix"/>
</condition>

<condition property="jsx.arg" value="/c babel --presets @babel/preset-react ${jsx.src.dir} --out-dir ${jsx.dst.dir}">
  <os family="windows"/>
</condition>
<condition property="jsx.arg" value=" --presets @babel/preset-react ${jsx.src.dir} --out-dir ${jsx.dst.dir}">
  <os family="unix"/>
</condition>

<target name="-transpile-jsx" description="transplie JSX" >
  <exec executable="${jsx.cmd}" failonerror="true">
     <arg line="${jsx.arg}"/>
  </exec>
</target>

<target name="build" description="build app">
 <echo>building...</echo>
 <echo message="cmd=${jsx.cmd}"/>
 <echo message="arg=${jsx.arg}"/>
 <antcall target="-transpile-jsx" />
</target>

相关问题