FrameworkEvent 错误 - NPMResolverServiceFactory.getService()

问题描述

我正在使用 Liferay 7.x 并构建一个 Angular 8 Portlet。

问题简而言之:我在 package.json 文件添加一个新包,服务器现在抱怨无法在我的文件中注入 NPMResolver自定义 Portlet。删除@Reference private NPMResolver _npmResolver; 行也会删除该问题。

更多细节和上下文:我还查看了源代码在这一行触发了一个 NullPointerException:

map.put(
 srcJSONObject.getString("name"),destJSONObject.getString("name")
);

原因是 srcJSONObject 变量为空。 我还查看了生成meta-inf\resources\manifest.json 文件(来自我的自定义模块),是的,我添加的新模块没有 src 和 dest 属性。 换句话说,Liferay 期望 manifest.json 文件一个包列表,其中列出了它们的模块,还有一个 srcdest 属性 - 下面的例子:

"src": {
        "id": "[email protected]","name": "ngx-bootstrap","version": "5.3.2","dir": ".\\node_modules\\ngx-bootstrap"
      },"dest": {
        "id": "[email protected]","name": "MyCustomModule$ngx-bootstrap","dir": ".\\build\\resources\\main\\meta-inf\\resources\\node_modules\\[email protected]"
      }

之前添加的包有这 2 个属性,但新添加一个 - 即“ngx-bootstrap” - 还添加了一些没有 src 和dest 属性。 当 Liferay 尝试注入 NPMResolver 类时,它无法读取 manifest.json 文件,因此无法注入类属性

问题:为什么 manifest.json 文件没有添加 src 和 dest 属性

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)