问题标签 [transpiler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
typescript - 无法引导 angular2 - cosole 上没有错误
我正在使用 gulp 将 ts 转换为 js,并且我的 ts 文件与其他静态资源一起正确生成在 dist 文件夹中。
我使用 systemjs 导入 scripts.js
script.js 是我串联的 javascript 文件,包含我的所有组件。问题是我在控制台上没有任何错误。我觉得我需要定位 boot.js 而不是 script.js。我怎样才能在我的 dist 文件夹中做到这一点
javascript - 在 Aurelia 中从 ecma6 转换为 ecma5 不起作用
有没有人有在 aurealia 教程中从 ecma6 转换为 ecma5 的经验?
我正在做这里的生产教程http://aurelia.io/docs.html#/aurelia/framework/1.0.0-beta.1.1.4/doc/article/a-production-setup
当运行 gulp 任务“build-e2e”时,它会获取 test/e2e/src 目录中的文件并在 test/e2e/dist 目录中输出一个版本。很好,但文件是一样的(它会接受更改,但似乎从 ecma6 转换为 ecma6。
编辑 运行“gulp e2e”时,我收到以下日志消息:[launcher] Running 1 instances of WebDriver FFFF
失败:
1) 异常加载:/......../aurelia-production-tutorial/test/e2e/dist/demo.spec-compiled.js 错误消息:SyntaxError: Unexpected token export Stacktrace: SyntaxError: Unexpected token export at在 Object 的 require (internal/module.js:16:19) 处的 exports.runInThisContext (vm.js:53:16)。(/........./aurelia-production-tutorial/test/e2e/dist/demo.spec-compiled.js:3:20)
javascript - 如何为某些浏览器加载某些脚本?
我有一个应用程序启动并运行,它在 Chrome 和 Firefox 中运行良好。Safari 是另一回事。为了举例,让我们假设这是我的应用程序:
当我在 Safari 中运行它时,我得到:
SyntaxError:意外的关键字“const”。严格模式不支持 const 声明。
然后,如果我删除“使用严格”,我会得到:
SyntaxError:意外的标识符“y”
在这一点上,我决定首先看一下转译,所以我安装了 Babel,并将我的客户端代码转换为 ES5 并放在一个新文件夹中。
我现在的问题是,如果用户使用的是 Chrome/Firefox,那么加载原始代码的最佳做法是什么,但如果他们使用的是 Safari,则加载转译的代码是什么?我的头在这里是否正确?
javascript - 我如何理解 js.map 文件中的所有这些垃圾?
我知道成为一名优秀的编码员并不重要,但我很好奇是否有人知道并可以解释.js.map
文件中发生的事情。
例如对于这个简单的.ts
文件,
编译后js
我得到这个.js.map
文件
为什么?
javascript - 是否有一种功能齐全的范式语言可以转换为 JavaScript?
是否有一种语言可以转换为 JavaScript(如 TypeScript、CoffeScript 等)并且几乎是纯函数式的(如 Haskell、Erlang、F#)?
我知道有一些库可以帮助保持不变性(下划线),并且 ES6 中有很多很酷的数组函数和 lambda。但是我正在寻找的是一个函数式的语法和转译器,所以我可以毫不费力地编写函数式 JavaScript。
javascript - 使用 babel,如何将一些代码附加到每个文件的顶部?
我的目标是通过 babel 伪造一些 requirejs 代码。我发现如果我if (typeof define !== "function") { var define = require("amdefine")(module); }
在 nodejs 中运行时将以下内容添加到每个文件的顶部,事情似乎就可以解决。
这是我编写的一些代码,我认为它们可以工作或几乎可以工作:
该components/button
文件只是我试图测试某些文件可以加载。
其他说明:我使用的是 babel 5,目前无法升级。我现在也不能.babelrc
很容易地使用。
deployment - PhpStorm:在文件观察器转译 .scss 文件后自动部署 .css 文件
我正在将我的项目自动部署到远程服务器。所有更改的文件都会自动上传到服务器,所以这没关系。我有一个文件观察器(Compass SCSS)将我的 .scss 转换为 .css。当 .sccs 文件更改时,它会上传到远程服务器,但转译后的 .css 文件不会。
在部署选项中,“上传外部更改”复选框被选中(见屏幕截图)。在文件观察器设置中,“要刷新的输出路径”设置为转译的 .css 文件所在的文件夹。
但是,.css 文件在更改时不会自动上传。当我将焦点设置在 PhpStorm 之外的窗口上,然后返回到 PhpStorm IDE 时,.css 文件被上传,但我想避免更改窗口来上传它。
有什么我想念的吗?
typescript - 为什么打字稿转译器不提升变量?
我知道 ES6 和 TypeScript 都支持块级范围,但是当以 ES3 和 ES5 为目标时,输出应该是函数级范围。我认为为什么 TypeScript 不提升变量背后必须有一个逻辑......而且我没有遇到问题,我只是好奇它为什么不提升变量。
例如,给定以下 TypeScript:
转译器输出:
我期望的结果是变量声明被提升到函数顶部。看起来像这样:
非常感谢任何见解。谢谢!
compiler-construction - 制作类似 sql 的语言转译器的好选择
我需要制作一个输出类似 SQL 的语言的 DSL。首先,我想使用递归下降解析器 + 一种简单的代码生成方法来推出我自己的转译器。但是由于 DSL 语言非常简单,输出语言也很简单,我意识到我会尝试找到一种时间和精力更少、消耗更少的方法,而不是重新发明轮子,比如更强大的 C 预处理器版本。首先想到的是m4,我以前只听说过,到目前为止从未使用过。我正在阅读一些教程/文档,但我仍然不确定是否可以使用此工具实现我的目标。例如我想转:
会翻译成这样的东西:
那么我有什么好的方法来完成这个?继续学习M4
还是我应该尝试另一种工具(如果是的话,哪个)或者我最好自己做编译器实现?
javascript - 意外转译 ES6>ES5
当将此函数从 ES6(使用 Babel)转换为 ES5 时,我没想到它会改变
但它变成了
为什么会这样以及它如何影响函数的使用(如果有的话)?即使它不影响使用,有什么我应该知道的吗?谢谢你。