javascript - 我可以有一个混合的 es5/es2015 AngularJS 应用程序吗?

标签 javascript angularjs ecmascript-6

在我的工作中,我们有一个用 ES5 编写的大型 AngularJS 应用程序,计划很快进行迁移。在迁移到任何其他 JS 框架(Angular 2+ 或 React)之前,我想采取较小的步骤将当前应用程序迁移到 ES2015。 但是,由于它是一个生产型大型应用,如果我们能够逐步处理此迁移,事情会更容易。

我知道有很多关于 AngularJS 与 ES2015 的教程,但我找不到任何可以解决 ES5 和 ES2015 混合文件情况的教程。

此外,当前的 ES5 应用程序使用 ocLazyload + ui-router 进行延迟加载路由,我不确定这将如何与 SystemJS 或 Webpack 等 ES2015 模块加载器一起使用。

有人知道如何处理这种特殊情况吗?

提前致谢。

最佳答案

ES2015 只是纯 JavaScript,具有更丰富的 API 和大量语法糖。例如,当您在 ES6 中使用 class 时,这并不是该语言中的新数据结构。这只是隐藏了 JavaScript 原型(prototype)本质的语法糖。在幕后,它仍然是一个函数。

所以当你开发一个应用程序时,你当然可以混合使用 ES5 和 ES6。如果您使用 Babel 编译代码或Traceur ,您应该有一个有效的输出,因为 ES5 是有效的 JavaScript。

如您所知,Angular 2 使用 TypeScript 。但 TypeScript 并不像 CoffeeScript 。这不是另一种可以编译为 JavaScript 的语言。微软将其定义为 JavaScript 的超集。事实上,如果您使用最小的 ES5 代码并尝试使用 tsc 编译它,它就会工作。

所以是的,您应该能够逐步进行迁移。 :)

关于javascript - 我可以有一个混合的 es5/es2015 AngularJS 应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43427123/

相关文章:

javascript - jquery-ui对话框 'x'按钮图片不可见

javascript - Iframe 下的 IE11 怪异模式 - javascript 错误

javascript - 如何在 li 元素中的 ng-if 中发送作用域变量?

javascript - Angularjs ng-有条件重复

javascript - 如何在 Chrome 扩展的内容脚本中导入 ES6 模块

javascript - 您将如何简化这个 if/else 语句?

javascript - 如何结合 Tornado 身份验证和 AngularJS?

javascript - Meteor - createContainer 未渲染到 React

javascript - JavaScript ECMAScript 6 中符号的用途是什么?

JavaScript - 等待/阻塞,直到构造函数完全加载