From b059eb4dca3170075bf98a45279ee96b20f81a23 Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Tue, 14 Dec 2021 10:35:49 +0300 Subject: [PATCH] Use local package files instead of CDN for Syncfusion --- .../POST.md | 42 ++++++++++++++++-- .../syncfusion-libs.png | Bin 0 -> 14990 bytes 2 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/syncfusion-libs.png diff --git a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/POST.md b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/POST.md index 95ef4cdddc..b2d41a5211 100644 --- a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/POST.md +++ b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/POST.md @@ -147,7 +147,43 @@ Instead of writing the license key directly in here we can define it in the **ap #### 3-) Adding Syncfusion styles and scripts to our application -* The last thing we need to do is, add some style and script files provided by Syncfusion, between our head-body tags. +Firstly, let's install the `@syncfusion/ej2` package from **npm**. + +* Open your **package.json** file and add the `@syncfusion/ej2` package with version **19.3.57**: + +```json +{ + "version": "1.0.0", + "name": "my-app", + "private": true, + "dependencies": { + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-rc.2", + "@syncfusion/ej2": "^19.3.57" + } +} +``` + +* Then, open the **abp.resourcemapping.js** file and update the **mappings** section: + +```js +module.exports = { + aliases: { + + }, + mappings: { + "@node_modules/@syncfusion/ej2/dist/ej2.min.js": "@libs/syncfusion/", + "@node_modules/@syncfusion/ej2/material.css": "@libs/syncfusion/" + } +}; +``` + +> ABP copies related packages from **node_modules** folder to the **libs** folder by examining this file. You can read this [document](docs.abp.io/en/abp/latest/UI/AspNetCore/Client-Side-Package-Management#mapping-the-library-resources) for more info. + +* Then run the `abp install-libs` to install the dependencies and copy them into the libs folder by your mappings configuration. After running this command, in your **libs** folder it should be a folder named **syncfusion** folder. + +![](./syncfusion-libs.png) + +The last thing we need to do is, add some style and script files provided by Syncfusion, between our head-body tags. * We can do this by creating two view components (one for Styles and the other for Scripts). Let's do that. @@ -163,7 +199,7 @@ Then open the related files and add the following codes to each of these files. @addTagHelper *, Syncfusion.EJ2 //add this line - + @@ -191,7 +227,7 @@ namespace SyncfusionComponentsDemo.Web.Components.Syncfusion.Script ```cshtml - + ``` * SyncfusionStyleComponent.cs diff --git a/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/syncfusion-libs.png b/docs/en/Community-Articles/2021-12-13-Integrating-the-Syncfusion-MVC-Components-to-the-ABP-MVC-UI/syncfusion-libs.png new file mode 100644 index 0000000000000000000000000000000000000000..d75935d8fd4d503717cdf8eea47808a05970586d GIT binary patch literal 14990 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 literal 0 HcmV?d00001