【问题标题】:Primeng with jhipsterPrimeng 与 jhipster
【发布时间】:2020-05-20 12:48:55
【问题描述】:

我有 jhipster 6.6.0 版本,我想在我用 jhipster 生成的应用程序中使用primeng。执行命令后:

 yo jhipster-primeng 

一切都好,但我跑了:

npm install 

我得到这个错误:

npm ERR! code ETARGET
npm ERR! notarget No matching version found for @angular/cdk@^8.2.14.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget
npm ERR! notarget It was specified as a dependency of 'jhipster-ui-libs'
npm ERR! notarget

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\48696\AppData\Roaming\npm-cache\_logs\2020-02-04T16_19_42_448Z-debug.log

我应该怎么做才能避免这个错误?

【问题讨论】:

  • 你能确认你已经安装了包@angular/animations吗?看来您缺少一些依赖项。如果您缺少此软件包,只需执行npm install --save @angular/animations
  • 是的,我安装了它,但没有帮助。此外,当使用旧版本的 jhipster 生成应用程序时,一切正常。您是否尝试过将primeng 与最新版本的jhipster 集成?
  • 错误中的jhipster-ui-libs是什么?你克隆了我的项目吗? github.com/gmarziou/jhipster-ui-libs/commits/primeng-jhipster-6
  • 是的,我克隆了您的项目,但在此之后,我还使用 jhipster 生成器从头开始创建了自己的项目,并且也遇到了同样的错误。之后我切换到旧版本的 jhipster,我创建了另一个应用程序,我能够将此应用程序与 primeng 集成,而不会出现此类错误。

标签: jhipster primeng


【解决方案1】:

primeng 的安装似乎总是有点棘手,无论版本如何。此答案中的说明已使用 JHipster 6.6.0 进行了测试。

1.安装 PrimeNG

您必须安装与所使用的任何版本的 angular JHipster 兼容的 PrimeNG 版本。在这种情况下,JHipster 6.6.0 使用 angular 8,所以我安装了 PrimeNG 的 8.1.1 版本(可用的最新版本 8)。

如果你使用 npm 可以使用以下命令:

npm i primeng@8.1.1 primeicons @angular/animations

如果你使用yarn,或者下面的命令:

yarn add primeng@8.1.1 primeicons @angular/animations

请记住,将来您可能还需要指定@angular/animations 的兼容版本。

2。导入所需的 PrimeNG 模块

现在你必须导入所需的模块,在我的例子中只是为了测试我想添加 PrimeNG 按钮的东西,所以我导入了ButtonModule

打开[your-entity].module.ts 文件(或home.module.ts)并添加以下行:

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { ButtonModule } from 'primeng/button'; 
...
@NgModule({
  imports: [..., BrowserAnimationsModule, ButtonModule],
  ...
})

在第二步中,非常重要永远不要从primeng/primeng 导入模块。你必须像我from 'primeng/button'那样使用特定的模块子文件夹。

3.导入所需的css文件

打开您的 vendor.scss 文件(或 vendor.css,如果您不使用 SCSS)并添加以下内容:

...
// Import PrimeNG source files
@import '~primeng/resources/primeng.min.css';
@import '~primeng/resources/themes/nova-light/theme.css';
@import '~primeicons/primeicons.css';
...

此时您应该能够将p-button 添加到您的*.component.html 文件中,并且它应该可以正确呈现。打开两个控制台,像往常一样分别运行.\mvnwnpm start

4.添加您需要的任何额外依赖项(可选)

非常常见的例子:你需要使用ChartJS,你必须相应地添加依赖,例如:npm i chart.js。然后将导入添加到您的*.module.ts 文件中:

import { ChartModule } from 'primeng/chart';
...
@NgModule({
  imports: [..., ChartModule],
  ...
})

最后将捆绑包添加到您的vendor.ts,如下所示:

import 'chart.js/dist/Chart.bundle';

现在您应该可以像官方primeng documentation 中解释的那样添加图表了。


我已经在我的 github 上发布了一个 repo,其中包含在您的 JHipster 6.6.0 安装中开始使用 PrimeNG 所需的最低配置。你可以找到它here

欢迎更改、修复和建议。有点匆忙,抱歉。

【讨论】:

  • 非常感谢!所以现在如果我想使用这里提供的 prmieng 的其他功能:link,只需将其导入相应的模块*.module.ts?比如我想用Listbox:link,是不是要加一些依赖?
  • Listbox 的情况下,您不需要任何额外的依赖项,因此它应该像在您的*.module.ts 中添加导入和模块一样简单,就像我使用按钮所做的那样。然后就可以像官方文档中的例子一样使用了。
  • 事实上我刚刚尝试过,一切正常,你可以查看我的 repo 的最新提交。还修复了缺少的primeicons 依赖项并相应地更新了答案(我所做的只是npm i primeicons 并将css 添加到vendor.scss 文件中)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-15
  • 2016-12-14
  • 1970-01-01
  • 2019-06-22
  • 2017-03-29
  • 1970-01-01
相关资源
最近更新 更多