【问题标题】:PrimeNG with Angular2-webpack-starterPrimeNG 与 Angular2-webpack-starter
【发布时间】:2016-08-02 20:08:41
【问题描述】:

我正在尝试基于 angular2-webpack-starter (https://github.com/AngularClass/angular2-webpack-starter) 在我的 Angular2 项目中配置 PrimeNG。

我使用 npm install 安装了 PrimeNG 和 PrimeUI,然后添加了必要的类型作为环境依赖项:

"jquery": "github:DefinitelyTyped/DefinitelyTyped/jquery/jquery.d.ts#470954c4f427e0805a2d633636a7c6aa7170def8",
"jqueryui": "github:DefinitelyTyped/DefinitelyTyped/jqueryui/jqueryui.d.ts#a3a5cd5554dc2c0ff8955d1db0673879af3095bc",
"primeui": "github:primefaces/primeui/primeui.d.ts#7640bc59a3634e501634655217fdd413bed6d003",

首先我遇到了 jquery 输入的问题。它给了我以下错误:

Subsequent variable declarations must have the same type.  Variable '$' must be of type 'cssSelectorHelper', but here has type 'JQueryStatic'.

我通过在typings/browser/ambient/jquery/index.d.ts 中注释掉以下几行来解决它:

declare module "jquery" {
    export = $;
}
declare var $: JQueryStatic;

现在我正在尝试使用import "primeui/primeui-ng-all.min.js"; 命令在vendor.ts 文件中导入primeui-ng-all.min.js。但是我收到以下错误:

Module not found: Error: Cannot resolve module 'jquery-ui' in .../angular2-webpack-starter/node_modules/primeui @ ./~/primeui/primeui-ng-all.min.js 8:23135-23167

在 angular2-webpack-starter 中包含 PrimeNG 是否正确?我应该如何解决这个问题?也许我应该如何导入 PrimeNG 所需的其他文件,例如样式表?

【问题讨论】:

标签: jquery jquery-ui angular prime-ui primeng


【解决方案1】:

通过 NPM 手动安装 JQuery UI 并将其导入 vendor.ts(在 Prime 之前)为我修复了它。

import 'jquery-ui/jquery-ui.js';

【讨论】:

    【解决方案2】:

    这是一种快速的入门方式(非npm),首先您需要从https://github.com/primefaces/primeng这里下载组件文件夹 然后将此添加到您的 index.html 添加头

     <link rel="stylesheet" type="text/css" href="prime/resources/primeui/themes/delta/theme.css"/>
            <link rel="stylesheet" type="text/css" href="prime/resources/icons/css/font-awesome.css"/>
            <link rel="stylesheet" type="text/css" href="prime/resources/css/prism.css"/>
            <link rel="stylesheet" type="text/css" href="prime/resources/css/fullcalendar.css"/>
            <link rel="stylesheet" type="text/css" href="prime/resources/css/quill.snow.css"/>
            <link rel="stylesheet" type="text/css" href="prime/resources/primeui/primeui-ng-all.css"/>
            <link rel="stylesheet" type="text/css" href="prime/resources/css/site.css"/>
    <script src="prime/resources/primeui/primeui-ng-all.min.js"></script>
    <script src="prime/resources/js/prism.js"></script>
    <script src="prime/resources/js/charts.min.js"></script>
    <script src="prime/resources/js/moment.js"></script>
    <script src="prime/resources/js/fullcalendar.js"></script>
    <script src="prime/resources/js/site.js"></script>
    <script>
            System.config({
                transpiler: 'typescript',
                typescriptOptions: { emitDecoratorMetadata: true },
                packages: {'app': {defaultExtension: 'ts'},
                    'components': {defaultExtension: 'ts'}, //Your downloaded components folder here.
                    'prime/resources/js' : {defaultExtension: 'js'}
            });
            System.import('app/boot')
                    .then(null, console.error.bind(console));
        </script>
    

    在配置应用程序之前检查路径。

    【讨论】:

    • 说实话,我更喜欢典型的 webpack/npm 解决方案,尤其是在这种情况下,大多数包使用 CommonJS,而 starter 提供开发和生产构建。
    猜你喜欢
    • 2016-06-12
    • 2017-08-10
    • 2016-12-20
    • 1970-01-01
    • 2017-02-07
    • 2017-02-10
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多