Liferay js 捆绑器 - 未删除未使用的节点模块

Liferay js bundler - unused node modules not removed

我正在使用 Liferay 7.3.5 并构建一个 Angular Portlet。我发现很难用不同的模块(或同一模块的版本)进行试验,因为不知何故,最终的 jar OSGI 模块确实包含了我玩过的所有模块,而不是 [=24 中的唯一模块=] 文件.

例如,我添加了 "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 文件夹中的所有文件夹,但之后没有成功。

我怎样才能purge/clean上下文才能有一个真实的状态?

我没有找到完整的解决方案,但它对我来说已经足够了 - 我已经完成了以下操作:

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

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