问题描述
我正在使用 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 文件有一个包列表,其中列出了它们的模块,还有一个 src
和 dest
属性 - 下面的例子:
"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 (将#修改为@)