diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj b/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj index 8767e4a9cf..8b9a91515d 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj @@ -17,6 +17,16 @@ + + + + + + + PreserveNewest + + + diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/npm-package/abp.resourcemapping.js b/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/npm-package/abp.resourcemapping.js similarity index 100% rename from src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/npm-package/abp.resourcemapping.js rename to src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/npm-package/abp.resourcemapping.js diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/npm-package/package.json b/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/npm-package/package.json similarity index 75% rename from src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/npm-package/package.json rename to src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/npm-package/package.json index 33d18e0486..8c758cba9d 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/npm-package/package.json +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/npm-package/package.json @@ -1,9 +1,9 @@ { "version": "0.2.0", - "name": "@abp/aspnetcore.mvc.ui.bootstrap", - "private": true, - "devDependencies": {}, + "name": "@abp/aspnetcore.mvc.ui.theme.basic", + "private": false, "dependencies": { + "@abp/aspnetcore.mvc.ui": "^0.2.0", "bootstrap": "^4.1.0", "font-awesome": "^4.7.0", "jquery": "^3.3.1", diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj b/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj index dedf33e8d0..18e03c9da9 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj @@ -15,6 +15,16 @@ + + + + + + + PreserveNewest + + + diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/npm-package/gulp/copy-resources.js b/src/Volo.Abp.AspNetCore.Mvc.UI/npm-package/gulp/copy-resources.js new file mode 100644 index 0000000000..2f8f048a3d --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/npm-package/gulp/copy-resources.js @@ -0,0 +1,94 @@ +"use strict"; + +(function () { + + var taskName = 'aspnetcore.mvc.ui.copy-resources'; + + var gulp = require("gulp"), + merge = require("merge-stream"), + rimraf = require("rimraf"), + path = require("path"), + extendObject = require('extend-object'); + + function init(rootMappingFilePath) { + var resourceMapping = buildResourceMapping(rootMappingFilePath); + + function replaceAliases(text) { + if (!resourceMapping.aliases) { + return text; + } + + for (var alias in resourceMapping.aliases) { + if (!resourceMapping.aliases.hasOwnProperty(alias)) { + continue; + } + + text = replaceAll(text, alias, resourceMapping.aliases[alias]); + } + + return text; + } + + function replaceAll(text, search, replacement) { + return text.replace(new RegExp(search, 'g'), replacement); + } + + function cleanFiles() { + if (resourceMapping.clean) { + for (var i = 0; i < resourceMapping.clean.length; i++) { + rimraf.sync(replaceAliases(resourceMapping.clean[i]) + '/**/*', { force: true }); + } + } + } + + function buildResourceMapping(mappingFilePath) { + var resourcemapping = require(mappingFilePath); + + if (resourcemapping.imports && resourcemapping.imports.length) { + + var aliases = {}; + var mappings = {}; + + for (var i = 0; i < resourcemapping.imports.length; i++) { + + var importedMappingFilePath = path.join(path.dirname(mappingFilePath), resourcemapping.imports[i]); + var importedResourceMapping = buildResourceMapping(importedMappingFilePath); + extendObject(aliases, importedResourceMapping.aliases); + extendObject(mappings, importedResourceMapping.mappings); + } + + extendObject(aliases, resourcemapping.aliases); + extendObject(mappings, resourcemapping.mappings); + + resourcemapping.aliases = aliases; + resourcemapping.mappings = mappings; + } + + return resourcemapping; + } + + gulp.task(taskName, + function () { + cleanFiles(); + + var tasks = []; + + for (var mapping in resourceMapping.mappings) { + if (resourceMapping.mappings.hasOwnProperty(mapping)) { + var source = replaceAliases(mapping); + var destination = replaceAliases(resourceMapping.mappings[mapping]); + tasks.push( + gulp.src(source).pipe(gulp.dest(destination)) + ); + } + } + + return merge(tasks); + }); + } + + module.exports = { + taskName: taskName, + init: init + }; +})(); \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI/npm-package/package.json b/src/Volo.Abp.AspNetCore.Mvc.UI/npm-package/package.json new file mode 100644 index 0000000000..dff4969ba1 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI/npm-package/package.json @@ -0,0 +1,13 @@ +{ + "version": "0.2.0", + "name": "@abp/aspnetcore.mvc.ui", + "private": false, + "dependencies": { + "ansi-colors": "^1.1.0", + "gulp": "^3.9.1", + "merge-stream": "^1.0.1", + "rimraf": "^2.6.2", + "extend-object": "^1.0.0", + "path": "^0.12.7" + } +}