Angular-cli + primeng 要求未定义

Angular-cli + primeng require is not defined

我正在使用 angular-cli@1.0.0-beta.14 (webpack) 和 primeng@1.0.0-beta.15。

创建一个新的 angular-cli 项目后,我做了一些更改以添加 primeng:

1 package.json:

"primeng": "^1.0.0-beta.15"

2 angular-cli.json:

"styles": [ "styles.css", "../node_modules/primeng/resources/themes/omega/theme.css", "../node_modules/font-awesome/css/font-awesome.min.css", "../node_modules/primeng/resources/primeng.min.css" ],
"scripts": [ "../node_modules/primeng/primeng.js" ]

3 app.module.ts:

@NgModule({ declarations: [ AppComponent ],
imports: [ BrowserModule, FormsModule, HttpModule, PanelModule ],
providers: [], bootstrap: [AppComponent] }) export class AppModule { }

问题:

Uncaught ReferenceError: require is not defined Unexpected value 'undefined' imported by the module 'AppModule'

将 primeng 添加到 angular-cli 的任何帮助...我们会很棒! :)

所以几乎你那里的一切看起来都不错。

问题在于您试图将 primeng 作为脚本标签包含在内(这是针对像 jQuery 这样的全局库的)。但是因为 primeng 部署了模块,你可以简单地将它导入你的模块,然后像这样将它提供给你的 NgModule:

import { ButtonModule } from 'primeng/components/button/button';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    ButtonModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

然后您还需要从 angular-cli.json

中删除对 primeng.js 的引用