Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在哪些情况下我应该在javascript中使用transpiler?_Javascript_Babeljs_Transpiler - Fatal编程技术网

在哪些情况下我应该在javascript中使用transpiler?

在哪些情况下我应该在javascript中使用transpiler?,javascript,babeljs,transpiler,Javascript,Babeljs,Transpiler,根据维基百科: 源到源编译器、transcompiler或transpiler是一种编译器类型,它以一种编程语言编写的程序的源代码作为输入,并以另一种编程语言生成等效的源代码 但是在哪些情况下,软件开发团队应该在构建工作流中使用transpiler 提前感谢。如果您想使用尚未在所有浏览器中支持的功能。例如:承诺、解构、生成器等。当使用JavaScript构建应用程序时,有两个主要原因让您需要两个文件来传输代码 1.您使用的语言不是JavaScript,而是要编译为JavaScript 这将是类似

根据维基百科:

源到源编译器、transcompiler或transpiler是一种编译器类型,它以一种编程语言编写的程序的源代码作为输入,并以另一种编程语言生成等效的源代码

但是在哪些情况下,软件开发团队应该在构建工作流中使用transpiler


提前感谢。

如果您想使用尚未在所有浏览器中支持的功能。例如:承诺、解构、生成器等。

当使用JavaScript构建应用程序时,有两个主要原因让您需要两个文件来传输代码

1.您使用的语言不是JavaScript,而是要编译为JavaScript 这将是类似或的情况。这些不能在任何平台上直接执行,因此必须首先将代码编译为纯JavaScript

至于你为什么要使用这些语言。主要是因为它们提供了比JavaScript更多的特性,比如类型系统、大量的语法糖等等

2.您使用的是普通JavaScript,但使用的是该语言的现代功能,而这些功能在您的目标平台上是不可用的。 例如,假设您希望使用ES6功能编写代码,但希望您的客户端能够使用IE11上的应用程序。在这种情况下,您将需要一个transpiler以相同的方式将代码转换为纯ES5


第二点也与多边形填充密切相关。但这些都超出了问题的范围。

回答你的问题:这取决于你想做什么,取决于你的团队、我们的项目、你的老板、你的愿景

对我来说,问题不是“我为什么要使用transpiler”,而是“关于我的技能和我的团队技能,我想使用的最佳技术是什么”。例如,如果你有一个Ruby程序,使用COFEFScript更容易(我不知道露比世界),如果你有一个巨大的java背景,你应该考虑…… Javascript是网络的“通用语言”。如果您想要应用Javascript中存在的概念之外的其他概念,或者想要使用另一种语法或范例,那么应该使用transpiler

例如:Objective-J、GoogleWith、CoffeeScript(javascript的Rubish语法)、Typescript(ES7 with type)、Eml(类似Haskell语法的函数式编程)、Babel(将ES7转换为ES5)等等

还有一个隐藏的传送器。例如,Vue.js、React或Flow(Angular 4使用非隐藏transpiler)

用一个好的JIT编译器编写一个好的解释器要比用Javascript编写一个设计糟糕的语言transpiler要困难得多,也要花很多时间,而Javascript的性能总是比你的要好。Vala就是这种情况,它在C中是可传输的,让GCC和gobject尽可能地完成这项工作


而且,更重要的是,会出现标准问题。如果您是Forth爱好者,您可以用Forth编写应用程序,然后将其传输到ES3,以便与地球上的所有(普通)浏览器兼容,而无需安装不需要的插件。

任何时候,如果您想使用目标语言不支持的语法糖,请使用传输程序。有,所以这取决于你使用的语言。你也可以。