0

我正在使用 Liferay 7.3.5 并构建一个 Angular Portlet。我发现尝试不同的模块(或同一模块的版本)非常困难,因为不知何故,最终的 jar OSGI 模块确实包含我使用过的所有模块,而不是 package.json 中的唯一模块文件。

例如,我添加了"ng2-pdf-viewer": "5.3.4"然后将其切换为"ng2-pdf-viewer": "6.3.0". 我期待最终的 jar 文件只包含6.3.0版本,但它实际上包含 -5.3.46.3.0. 我一直在玩的所有其他模块都会发生这种情况。所以,基本上,我在 package.json 文件中的内容没有反映在最终的 .jar 文件中,我不确定如何清除只保留所有未使用依赖项的缓存。

我还从 node_modules 文件夹中删除了所有文件夹,但之后没有成功。

如何清除/清理上下文以获得真实状态?

4

1 回答 1

1

我没有找到完整的解决方案,但这对我来说已经足够了——我做了以下事情:

  1. node_modules从 eclipse-workspace<your_project_name>\modules<your_module_name> 中删除文件夹
  2. 从 eclipse gradle 任务中执行 gradle clean (这将清理项目的 build 文件夹,并且与 node_modules 文件夹没有任何关系)
  3. npm install从 eclipse-workspace<your_project_name>\modules<your_module_name>执行
  4. 再次构建完整的项目

重要说明:我还注意到,即使我已经在上面进行了所有这些清理,我的 package.json 和 package-lock.json 之间也存在不同步——我的意思是,我"ng2-pdf-viewer": "5.2.3"在 package.json 文件中有版本,但在生成的package-lock.json 我有"ng2-pdf-viewer": "5.3.4"。我刚刚触发了两次构建过程,最后文件同步了。尽管这次 package-lock.json 文件是正确的,但两个模块都打包在 Liferay 模块 .jar 中——我的意思是,有 5.2.3 和 5.3.4 版本。当我将 package.json 文件切换到较新版本时,我只能保留其中一个。

于 2020-12-09T10:40:23.280 回答