我想知道,是否可以创建一个基于 angular(2, angular material v1.1.1) 和 typescript 的 liferay7.0 portlet。
我知道可以加载(例如)Angular 1.4 库并使用纯 javascript/angular 代码创建 portlet 来源:https://web.liferay.com/web/sampsa.sohlman/blog/-/blogs/trying-the-angularjs-with-liferay
我想实现的是创建一个基于 nodejs 包的 portlet。并用 gulp 或其他工具将其编译为 war 文件。
最佳答案
开放讨论。 我可以看到的可能方式,不管 Angular 2 & More 总体上专注于单页应用程序
Liferay 7 提供 ES6 支持。您编写 ES6 代码,然后将其转换并作为模块安装。 Liferay IDE 中的 Gradle 有一个转译选项,导入是一个单独的包,可以在 OSGI 容器中的所有模块中使用。
Liferay 7 引入了 Metal JS。 Metal JS 具有对 SOY 和 JSX 的模板支持。它再次具有相同的过程,编写 ES6 代码,编译它,安装模块并使用它。
在探索 liferay 源代码时,它使用 babel 而不是 typescript。有扩展名为 .es.js 的文件。 & Liferay使用的是AMD Module loader,所以需要有一个typescript & AMD Loader的task,然后才能传过去。这样的任务需要创建 & 然后加载模块可以通过这样的事情来完成
要求('我的对话框',函数(myDialog){ //你的代码在这里 }, 函数(错误){ 控制台错误(错误); });
引用:- https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/liferay-amd-module-loader
- Liferay 推出了塞纳 JS。再次是它的 es6 转译文件,其中对应于我们定义页面的每个路由,在该页面中我们可以保留要加载的组件。
关于angularjs - Liferay7.0 portlet build with angular and typescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41717670/