No matching service worker detected - Angular 9 - service-worker

this is my first time working with service workers and I am having difficulties because I always get this error in the Network - Application - Manifest tab:
Some technical details:
package.json
"#angular/animations": "~9.1.0",
"#angular/common": "~9.1.0",
"#angular/compiler": "~9.1.0",
"#angular/core": "~9.1.0",
"#angular/forms": "~9.1.0",
"#angular/localize": "~9.1.0",
"#angular/platform-browser": "~9.1.0",
"#angular/platform-browser-dynamic": "~9.1.0",
"#angular/pwa": "^0.901.12",
"#angular/router": "~9.1.0",
"#angular/service-worker": "~9.1.0",
angular.json
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "projects/appName/src/environments/environment.ts",
"with": "projects/appName/src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "5mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
],
"serviceWorker": true,
"ngswConfigPath": "projects/appName/src/ngsw-config.json"
manifest.webmanifest
{
"name": "app name",
"short_name": "app",
"description": "test test",
"theme_color": "#003f8b",
"background_color": "#ffffff",
"display": "standalone",
"orientation": "portrait",
"scope": "/",
"start_url": "/",
"icons": [
{
"src": "favicon.ico",
"sizes": "16x16",
"type": "image/png",
"purpose": "any"
},
{
"src": "assets/images/icons/flatwork.svg",
"sizes": "150x150",
"type": "image/png",
"purpose": "any"
},
{
"src": "assets/images/icons/icon-withdrawal-mark.png",
"sizes": "27x23",
"type": "image/png",
"purpose": "any"
},
{
"src": "assets/images/icons/incoming.svg",
"sizes": "150x150",
"type": "image/png",
"purpose": "any"
},
{
"src": "assets/images/icons/input.svg",
"sizes": "150x150",
"type": "image/png",
"purpose": "any"
},
{
"src": "assets/images/icons/master_data_icon.svg",
"sizes": "150x150",
"type": "image/png",
"purpose": "any"
},
{
"src": "assets/images/icons/outgoing.svg",
"sizes": "150x150",
"type": "image/png",
"purpose": "any"
},
{
"src": "assets/images/icons/output.svg",
"sizes": "150x150",
"type": "image/png",
"purpose": "any"
},
{
"src": "assets/images/icons/rental_outfit.svg",
"sizes": "150x150",
"type": "image/png",
"purpose": "any"
},
{
"src": "assets/images/icons/repair.svg",
"sizes": "150x150",
"type": "image/png",
"purpose": "any"
},
{
"src": "assets/images/icons/scanned_on.svg",
"sizes": "150x150",
"type": "image/png",
"purpose": "any"
},
{
"src": "assets/images/icons/tooltip_icon.svg",
"sizes": "150x150",
"type": "image/png",
"purpose": "any"
}
]
}
index.html
<meta name="theme-color" content="#003f8b" />
<link rel="manifest" href="manifest.webmanifest" />
<body>
<bar-root></bar-root>
<noscript
>Please enable JavaScript to continue using this application.</noscript
>
</body>
app.module
imports: [
BrowserModule,
ServiceWorkerModule.register('../ngsw-worker.js', {
enabled: environment.production
}),
... // other imports
],
providers: [
{
provide: SwRegistrationOptions,
useFactory: () => ({
enabled: environment.production,
registrationStrategy: 'registerImmediately',
}),
},
]
ngsw-config.json
{
"$schema": "../../../node_modules/#angular/service-worker/config/schema.json",
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/manifest.webmanifest",
"/*.css",
"/*.js"
]
}
},
{
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**",
"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"
]
}
}
]
}
Also, here is the project structure to check the path imports:
What am I missing? Also, what is the best way to test any config changes?

I found a solution regarding my issue, some small changes were required:
app.module - adjusted the service worker registration
ServiceWorkerModule.register('ngsw-worker.js', {
enabled: environment.production,
// Register the ServiceWorker as soon as the app is stable
// or after 30 seconds (whichever comes first).
registrationStrategy: 'registerWhenStable:30000',
}),
In angular.json if you have multiple builds for different environments, lets say production and qa, you can add these configs on both:
"serviceWorker": true,
"ngswConfigPath": "projects/appName/ngsw-config.json"
// or whichever path you have for the ngsw-config.json, but this will probably be generated automatically when installing #angular/pwa.
To test your changes, run ng build or ng build --prod or any other environments you want to test on.
To see the build for the prod environment I used http-server, which you can find in npm and install it. Your build will be created in a dist folder, and in the root folder of the app run(9191 being the port, you can change it to whatever you like, just make sure nothing runs on it):
http-server -p 9191 -c-1 dist/appName
You can open you 9191 localhost port and check in the Deveoper Tools, Application tab, under Manifest and Service Workers to make sure everything is running.
I also removed ngsw-worker.js from my project because it is moved automatically from node_modules when you do the builds.

Related

How to disable electron generate zip.blockmap?

I am using electron-builder to build mac and windows app. Abouve is my electron build output directory. I don't need autoupdater. So I just wanna .dmg and .exe files. How can I set builder config to diable electron generate those useless files(yal、yaml、zip、zip.blockmap)?
Below is my package.json
"build": {
"appId": "we-media-helper",
"copyright": "Copyright © 2022 Eve-Sama",
"generateUpdatesFilesForAllChannels": true,
"directories": {
"output": "./dist/installer"
},
"mac": {
"target": {
"target": "default",
"arch": [
"arm64",
"x64",
"universal"
]
},
"icon": "./assets/icons/mac-dock.icns",
"publish": {
"owner": "Eve-Sama",
"repo": "we-media-helper",
"provider": "github"
}
},
"dmg": {
"writeUpdateInfo": false
},
"nsis": {
"differentialPackage": false,
"oneClick": false,
"allowElevation": true,
"allowToChangeInstallationDirectory": true,
"installerIcon": "./assets/icons/win-taskbar.ico",
"uninstallerIcon": "./assets/icons/win-taskbar.ico",
"installerHeaderIcon": "./assets/icons/win-taskbar.ico",
"createDesktopShortcut": true,
"createStartMenuShortcut": true,
"artifactName": "${productName}_Setup_${version}.${ext}"
},
"win": {
"icon": "./assets/icons/win-taskbar.ico",
"target": [
{
"target": "nsis",
"arch": [
"ia32"
]
}
]
},
"files": [
"**/*",
"!dist/installer",
"!**/*.ts",
"!**/*.tsx",
"!src/",
"!public/",
"!.eslintignore",
"!.eslintrc.js",
"!.gitignore",
"!.prettierrc",
"!gulpfile.ts",
"!LICENSE",
"!package-lock.json",
"!README.md",
"!tsconfig.json",
"!yarn.lock"
],
"extends": null
},
And I have another question. As you can see, I set mac.target.arch as ['arm64', 'x64', 'universal']. And output directory contains folder mac rather than mac-x64. why? How can I set it as mac-x64

Electron build error: file not found in artifact

this is my first time building an electron app and I am getting confused about this error I got in my production package.
I've created my app using the electron-react-boilerplate, and I am running the package build with the default config.
"build": {
"productName": "App",
"appId": "org.erb.ElectronReact",
"asar": true,
"asarUnpack": "**\\*.{node,dll}",
"files": [
"dist",
"node_modules",
"package.json"
],
"afterSign": ".erb/scripts/notarize.js",
"mac": {
"target": {
"target": "default",
"arch": [
"arm64",
"x64"
]
},
"type": "distribution",
"hardenedRuntime": true,
"entitlements": "assets/entitlements.mac.plist",
"entitlementsInherit": "assets/entitlements.mac.plist",
"gatekeeperAssess": false
},
"dmg": {
"contents": [
{
"x": 130,
"y": 220
},
{
"x": 410,
"y": 220,
"type": "link",
"path": "/Applications"
}
]
},
"win": {
"target": [
"nsis"
]
},
"linux": {
"target": [
"AppImage"
],
"category": "Development"
},
"directories": {
"app": "release/app",
"buildResources": "assets",
"output": "release/build"
},
"extraResources": [
"./assets/**"
]
},
My preload.js file is requiring a module (module.umd.js) that is reading from three .trie files, so my folder structure looks like this:
Once builded, the app is not working and I see this error on the web console inspector:
Error: ENOENT, dist\main\data.trie not found in C:\Users\ivan\Desktop\app-electron\release\build\win-unpacked\resources\app.asar
So my question is: Do I have to somehow add those .trie files in app.asar in order to solve this problem?

How can I set the filename of the created .deb file when building my Electron.NET application for Linux?

This is my electron.manifest.json
{
"executable": "MyApplication.UI",
"splashscreen": {
"imageFile": "/wwwroot/assets/Animation.svg"
},
"author": "MyCompany",
"environment": "Production",
"singleInstance": false,
"build": {
"appId": "com.mycompany.myapplication",
"productName": "MyApplication",
"copyright": "Copyright # 2022",
"buildVersion": "2022.1.0",
"compression": "maximum",
"fileAssociations": [
{
"ext": "sdg",
"name": "MyApplication File",
"role": "Editor"
}
],
"publish": {
"provider": "generic",
"url": "https://mydomain.io/Installer/MyApplication/",
"channel": "latest"
},
"nsis": {
"allowToChangeInstallationDirectory": true,
"oneClick": false,
"perMachine": true,
"installerIcon": "bin/Assets/icon.ico",
"uninstallerIcon": "bin/Assets/icon.ico",
"installerHeaderIcon": "bin/Assets/icon.ico",
"menuCategory": true
},
"win": {
"target": [
"nsis"
],
"icon": "Assets/icon.ico"
},
"linux": {
"target": "deb",
"maintainer": "MyCompany",
"vendor": "MyCompany",
"synopsis": "MyApplication",
"executableName": "MyApplication",
"description": "Doing some magic.",
"category": "Development",
"icon": "./../../Assets/Icons/32x32.png"
},
"directories": {
"output": "../../../bin/Installer",
"buildResources": "Assets"
},
"extraResources": [
{
"from": "./bin",
"to": "bin",
"filter": [
"**/*"
]
}
],
"files": [
{
"from": "./ElectronHostHook/node_modules",
"to": "ElectronHostHook/node_modules",
"filter": [
"**/*"
]
},
"**/*"
]
}
}
The created .deb file when building for linux is called electron-net_{version}.deb. That wouldn't be a problem but when executed, the application name electron-net is shown.
How can I change that? I checked the documentation (here https://www.electron.build/configuration/linux) already but I dont see any more options in my config?
I am using ElectronNET.CLI Version 15.5.1 on Ubuntu 20.04.4, .NET Version 5.0.406
I think you're looking for the artifactName property under build for your file name and the name property under at root for the name that is displayed
{
"name" : "MyApplication",
"executable" : "MyApplication",
"build": {
"artifactName": "my-application.${ext}",
}
}

Electron app Failed to get ipaddress when exported as Flatpak

I am trying to make a Flatpak for my little application “OpenSpeedTest-Server”
This is a simple network performance estimation tool. It is working fine on Windows, Mac and Linux (DEB).
1) When i Export the same in Flatpak, Application unable to get the client device ip address.
2) Also i am not able to put a custom icon for my Flatpak.
I used electronforge.
Here is my package.json
{
"name": "OpenSpeedTest-Server",
"productName": "OpenSpeedTest-Server",
"version": "2.1.0",
"description": "Network Speed Test Server - by OpenSpeedTest",
"main": "src/index.js",
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make",
"publish": "electron-forge publish",
"lint": "echo \"No linting configured\""
},
"keywords": [],
"author": {
"name": "OpenSpeedTest",
"email": "support#openspeedtest.com"
},
"license": "MIT",
"config": {
"forge": {
"packagerConfig": {
"icon": "src/icon.png"
},
"makers": [
{
"name": "#electron-forge/maker-flatpak",
"config": {
"name": "OpenSpeedTest_Server",
"options": {
"categories": [
"Utility"
],
"icon": "src/icon.png"
}
}
},
{
"name": "#electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "#electron-forge/maker-deb",
"config": {}
},
{
"name": "#electron-forge/maker-rpm",
"config": {}
}
]
}
},
"dependencies": {
"cors": "^2.8.5",
"electron-squirrel-startup": "^1.0.0",
"express": "^4.17.1",
"internal-ip": "^6.2.0",
"tcp-port-used": "^1.0.2"
},
"devDependencies": {
"#davidwinter/electron-forge-maker-snap": "^2.0.4",
"#electron-forge/cli": "^6.0.0-beta.57",
"#electron-forge/maker-deb": "^6.0.0-beta.57",
"#electron-forge/maker-flatpak": "^6.0.0-beta.57",
"#electron-forge/maker-rpm": "^6.0.0-beta.57",
"#electron-forge/maker-squirrel": "^6.0.0-beta.57",
"#electron-forge/maker-zip": "^6.0.0-beta.57",
"electron": "13.1.2"
}
}
How can i solve this issue?
Solved the issue by adding iproute2 to source and specifying icon dimension. Max supported was 512x512 and i was using 1024x1024
{
"name": "#electron-forge/maker-flatpak",
"config": {
"name": "OpenSpeedTest_Server",
"options": {
"categories": [
"Utility"
],
"icon": {
"512x512": "src/android-chrome-512x512.png"
}
},
"modules": [
{
"name": "zypak",
"sources": [
{
"type": "git",
"url": "https://github.com/refi64/zypak",
"tag": "v2021.02"
}
]
},
{
"name": "iproute2",
"make-install-args": [
"PREFIX=/app",
"CONFDIR=/app/share/iproute2",
"SBINDIR=/app/bin"
],
"sources": [
{
"type": "archive",
"url": "https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.7.0.tar.xz",
"sha256": "725dc7ba94aae54c6f8d4223ca055d9fb4fe89d6994b1c03bfb4411c4dd10f21"
}
],
"cleanup": [
"/include",
"/share/bash-completion",
"/share/man"
]
}
]
}
},

How to use breeze in aurelia?

I am new to aurelia, and I use the skeleton-typescript-aspnetcore skeleton project to build my first application. The skeleton works fine, but when I followed aurelia-breeze plugin guide to integrate it to my application, I use
import breeze from 'breeze';
on a ts file, but there is an error: cannot find module 'breeze'. I googled so much that someone mentioned the d.ts file is missing, and I copy it from git(https://github.com/jdanyow/aurelia-breeze/blob/master/dist/aurelia-breeze.d.ts) to typings folder, but the d.ts file rose an other error in the first line, cannot find module 'breeze-client':
import breeze from 'breeze-client';
I checked the nmp folder(wwwroot/nmp), both aurelia-breeze and breeze-client are there,also, the same in package.json.
I compared the aurelia-breeze.d.ts with other d.ts file under typings folder,
the files come with the skeleton all named index.d.ts, and with a typings.json for decalaration.
So I suppose the error should be caused by typings configuration, and I Googled for a long time, but there is no answer, can you tell me how to make it work? thanks in advance.
I don't use TypeScript in my Aurelia app but I had the same problem integrating breeze. In the end I solved it (or rather found this workaround) by adding it as a simple script instead of loading it from the node_modules (or jspm_packages, depending which one you use).
This is my new main.js file:
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.plugin('aurelia-knockout');
return aurelia.start().then(() => {
require(["../scripts/lib/breeze.debug"], function(breeze) {
require([
"../scripts/lib/breeze.savequeuing",
], function(savequeuing){
aurelia.setRoot();
});
});
});
}
Hope this helps. In my case I even integrate the breeze.savequeuing plugin of breeze after breeze itself has been loaded. There are probably better ways to do this though.
Also notice I use "require" as the module loader. I use the Aurelia CLI so I have set it in the aurelia.json file under "build" like this:
"loader": {
"type": "require",
"configTarget": "vendor-bundle.js",
"includeBundleMetadataInConfig": "auto",
"config": {
"waitSeconds": 0,
"paths": {
"jquery": "../scripts/lib/cdn/jquery-3.1.0.min",
"knockout": "../scripts/lib/knockout-3.4.0"
}
},
....
}
and under "bundles" like this:
{
"name": "vendor-bundle.js",
"prepend": [
"node_modules/bluebird/js/browser/bluebird.core.js",
"scripts/lib/require.js"
],
...
}
To use breezejs client with aurelia you must do as follows
Install the required packages.
npm install breeze-client --save
npm install aurelia-breeze --save
Configure dependencies on your module loader.
In my case, I am using amd with requirejs thus the dependencies will be as follows...
paths...
"aurelia-breeze":'../node_modules/aurelia-breeze/dist/amd/aurelia-breeze'
"breeze-client": '../node_modules/breeze-client/breeze.base.min'
"breeze.modelLibrary": '../node_modules/breeze-client/breeze.modelLibrary.backingStore'
"breeze.dataService": '../node_modules/breeze-client/breeze.dataService.webApi'
"breeze.uriBuilder": '../node_modules/breeze-client/breeze.uriBuilder.json'
shims...
'aurelia-breeze': {
exports: 'BreezeObjectObserver',
deps: ['breeze-client', 'breeze.modelLibrary', 'breeze.dataService', 'breeze.uriBuilder']
}
'breeze-client': {
exports: 'breeze'
}
(requirejs config.js file and aurelia.json full files included below)
Import and initialize the library on your TypeScript project as you need
import * as breeze from 'breeze-client'
breeze.NamingConvention.camelCase.setAsDefault();
breeze.config.initializeAdapterInstance('modelLibrary',
'backingStore', true);
It´s done!! you can now use breeze. i.e.
const entityManager = new
EntityManager'http://zzaapi.azurewebsites.net/breeze/zza') const
entityQuery = EntityQuery.from(‘Customers’);
entityManager.executeQuery(entityQuery).then(queryResult =>
console.log(queryResult.results));
(from Brian Noyes excellent course on https://www.pluralsight.com/courses/building-data-centric-apps-angular-breezejs)
PS: I will post the full content of my requirejs config.js file and also the aurelia.json for aurelia cli build, take look and notice prepends, preload and shims.
//-------------------config.js----------------------------------------------
require.config(
{
baseUrl: 'src',
paths: {
pipelines: 'resources/pipelines',
templates: 'resources/templates',
interceptors: 'resources/interceptors',
bluebird: '../node_modules/bluebird/js/browser/bluebird.min',
bootstrap: '../node_modules/bootstrap/dist/js/bootstrap.min',
"aurelia-animator-css": '../node_modules/aurelia-animator-css/dist/amd/aurelia-animator-css',
"aurelia-binding": '../node_modules/aurelia-binding/dist/amd/aurelia-binding',
"aurelia-bootstrapper": '../node_modules/aurelia-bootstrapper/dist/amd/aurelia-bootstrapper',
"aurelia-breeze": '../node_modules/aurelia-breeze/dist/amd/aurelia-breeze',
"aurelia-computed": '../node_modules/aurelia-computed/dist/amd/aurelia-computed',
"aurelia-dependency-injection": '../node_modules/aurelia-dependency-injection/dist/amd/aurelia-dependency-injection',
"aurelia-event-aggregator": '../node_modules/aurelia-event-aggregator/dist/amd/aurelia-event-aggregator',
"aurelia-fetch-client": '../node_modules/aurelia-fetch-client/dist/amd/aurelia-fetch-client',
"aurelia-framework": '../node_modules/aurelia-framework/dist/amd/aurelia-framework',
"aurelia-history": '../node_modules/aurelia-history/dist/amd/aurelia-history',
"aurelia-history-browser": '../node_modules/aurelia-history-browser/dist/amd/aurelia-history-browser',
"aurelia-http-client": '../node_modules/aurelia-http-client/dist/amd/aurelia-http-client',
"aurelia-loader": '../node_modules/aurelia-loader/dist/amd/aurelia-loader',
"aurelia-loader-default": '../node_modules/aurelia-loader-default/dist/amd/aurelia-loader-default',
"aurelia-logging": '../node_modules/aurelia-logging/dist/amd/aurelia-logging',
"aurelia-logging-console": '../node_modules/aurelia-logging-console/dist/amd/aurelia-logging-console',
"aurelia-metadata": '../node_modules/aurelia-metadata/dist/amd/aurelia-metadata',
"aurelia-pal": '../node_modules/aurelia-pal/dist/amd/aurelia-pal',
"aurelia-pal-browser": '../node_modules/aurelia-pal-browser/dist/amd/aurelia-pal-browser',
"aurelia-path": '../node_modules/aurelia-path/dist/amd/aurelia-path',
"aurelia-polyfills": '../node_modules/aurelia-polyfills/dist/amd/aurelia-polyfills',
"aurelia-router": '../node_modules/aurelia-router/dist/amd/aurelia-router',
"aurelia-route-recognizer": '../node_modules/aurelia-route-recognizer/dist/amd/aurelia-route-recognizer',
"aurelia-task-queue": '../node_modules/aurelia-task-queue/dist/amd/aurelia-task-queue',
"aurelia-templating": '../node_modules/aurelia-templating/dist/amd/aurelia-templating',
"aurelia-templating-binding": '../node_modules/aurelia-templating-binding/dist/amd/aurelia-templating-binding',
"breeze-client": '../node_modules/breeze-client/breeze.base.min',
"breeze.modelLibrary": '../node_modules/breeze-client/breeze.modelLibrary.backingStore',
"breeze.dataService": '../node_modules/breeze-client/breeze.dataService.webApi',
"breeze.uriBuilder": '../node_modules/breeze-client/breeze.uriBuilder.json',
jquery: '../node_modules/jquery/dist/jquery.min',
lodash: '../node_modules/lodash/lodash.min',
moment: '../node_modules/moment/min/moment-with-locales.min',
numeral: '../node_modules/numeral/min/numeral.min',
pouchdb: '../node_modules/pouchdb/dist/pouchdb.min',
text: '../node_modules/text/text',
toastr: '../node_modules/toastr/build/toastr.min',
"jquery-ui": '../node_modules/jquery-ui/dist/jquery-ui.min'
},
packages: [
{
name: 'aurelia-dialog',
location: '../node_modules/aurelia-dialog/dist/amd',
main: 'aurelia-dialog'
},
{
name: 'aurelia-templating-resources',
location: '../node_modules/aurelia-templating-resources/dist/amd',
main: 'aurelia-templating-resources'
},
{
name: 'aurelia-templating-router',
location: '../node_modules/aurelia-templating-router/dist/amd',
main: 'aurelia-templating-router'
},
{
name: 'aurelia-testing',
location: '../node_modules/aurelia-testing/dist/amd',
main: 'aurelia-testing'
},
{
name: 'aurelia-validation',
location: '../node_modules/aurelia-validation/dist/amd',
main: 'aurelia-validation'
},
{
name: 'popper.js',
location: '../node_modules/popper.js/dist/umd/',
main: 'popper.min'
}
],
shim: {
'aurelia-breeze': {
exports: 'BreezeObjectObserver',
deps: ['breeze-client', 'breeze.modelLibrary', 'breeze.dataService', 'breeze.uriBuilder']
},
'breeze-client': {
exports: 'breeze'
},
bootstrap: {
exports: '$.fn.button',
deps: ['jquery', 'popper.js']
},
jquery: {
exports: '$'
},
"jquery-ui": {
exports: '$.autocomplete',
deps: ['jquery']
},
lodash: {
exports: '_'
},
"popper.js": {
exports: 'Popper'
},
toastr: {
deps: ['jquery']
}
}
});
require(['aurelia-bootstrapper']);
//-------------------aurelia.json----------------------------------------------
{
"name": "mgame",
"type": "project:application",
"bundler": {
"id": "cli",
"displayName": "Aurelia-CLI"
},
"platform": {
"id": "aspnetcore",
"displayName": "ASP.NET Core",
"index": "index.html",
"baseDir": ".",
"output": "dist"
},
"transpiler": {
"id": "typescript",
"displayName": "TypeScript",
"fileExtension": ".ts",
"dtsSource": [ "./custom_typings/**/*.d.ts" ],
"source": "src/**/*.ts"
},
"markupProcessor": {
"id": "maximum",
"displayName": "Maximum Minification",
"fileExtension": ".html",
"source": "src/**/*.html"
},
"cssProcessor": {
"id": "sass",
"displayName": "Sass",
"fileExtension": ".scss",
"source": "src/**/*.scss"
},
"editor": {
"id": "visualstudio",
"displayName": "Visual Studio"
},
"testFramework": {
"id": "jasmine",
"displayName": "Jasmine"
},
"unitTestRunner": {
"id": "karma",
"displayName": "Karma",
"source": "test/unit/**/*.ts"
},
"e2eTestRunner": {
"id": "protractor",
"displayName": "Protractor",
"source": "test/e2e/src/**/*.ts",
"dist": "test/e2e/dist/",
"typingsSource": [ "node_modules//#types/**/*.d.ts", "custom_typings/**/*.d.ts" ]
},
"paths": {
"root": "src",
"resources": "resources",
"elements": "resources/elements",
"pipelines": "resources/pipelines",
"templates": "resources/templates",
"attributes": "resources/attributes",
"interceptors": "resources/interceptors",
"valueConverters": "resources/converters",
"bindingBehaviors": "resources/behaviors",
"assets": [
{
"src": "node_modules/jquery-ui/dist/images/*",
"dest": "/../images"
},
{
"src": "node_modules/font-awesome/css/font-awesome.min.css",
"dest": "/css"
},
{
"src": "node_modules/font-awesome/fonts/*",
"dest": "/fonts"
}
]
},
"build": {
"targets": [
{
"id": "aspnetcore",
"displayName": "ASP.NET Core",
"index": "index.html",
"baseDir": ".",
"output": "dist"
}
],
"loader": {
"type": "require",
"configTarget": "vendor-bundle.js",
"includeBundleMetadataInConfig": "auto",
"plugins": [
{
"name": "text",
"extensions": [
".html",
".css"
],
"stub": true
}
]
},
"options": {
"minify": "stage & prod",
"sourcemaps": "dev & stage"
},
"bundles": [
{
"name": "app-bundle.js",
"source": [
"[**/*.js]",
"**/*.{css,html}"
]
},
{
"name": "vendor-bundle.js",
"prepend": [
"node_modules/bluebird/js/browser/bluebird.min.js",
"node_modules/popper.js/dist/umd/popper.min.js",
"node_modules/requirejs/require.js"
],
"dependencies": [
"jquery",
"lodash",
"moment",
"numeral",
"text",
{
"name": "aurelia-animator-css",
"path": "../node_modules/aurelia-animator-css/dist/amd",
"main": "aurelia-animator-css"
},
{
"name": "aurelia-binding",
"path": "../node_modules/aurelia-binding/dist/amd",
"main": "aurelia-binding"
},
{
"name": "aurelia-bootstrapper",
"path": "../node_modules/aurelia-bootstrapper/dist/amd",
"main": "aurelia-bootstrapper"
},
{
"name": "aurelia-breeze",
"path": "../node_modules/aurelia-breeze/dist/amd",
"main": "aurelia-breeze",
"exports": "BreezeObjectObserver",
"deps": [ "breeze-client", "breeze.modelLibrary", "breeze.dataService", "breeze.uriBuilder" ]
},
{
"name": "aurelia-computed",
"path": "../node_modules/aurelia-computed/dist/amd",
"main": "aurelia-computed"
},
{
"name": "aurelia-dependency-injection",
"path": "../node_modules/aurelia-dependency-injection/dist/amd",
"main": "aurelia-dependency-injection"
},
{
"name": "aurelia-dialog",
"path": "../node_modules/aurelia-dialog/dist/amd",
"main": "aurelia-dialog"
},
{
"name": "aurelia-event-aggregator",
"path": "../node_modules/aurelia-event-aggregator/dist/amd",
"main": "aurelia-event-aggregator"
},
{
"name": "aurelia-fetch-client",
"path": "../node_modules/aurelia-fetch-client/dist/amd",
"main": "aurelia-fetch-client"
},
{
"name": "aurelia-framework",
"path": "../node_modules/aurelia-framework/dist/amd",
"main": "aurelia-framework"
},
{
"name": "aurelia-history",
"path": "../node_modules/aurelia-history/dist/amd",
"main": "aurelia-history"
},
{
"name": "aurelia-history-browser",
"path": "../node_modules/aurelia-history-browser/dist/amd",
"main": "aurelia-history-browser"
},
{
"name": "aurelia-http-client",
"path": "../node_modules/aurelia-http-client/dist/amd",
"main": "aurelia-http-client"
},
{
"name": "aurelia-loader",
"path": "../node_modules/aurelia-loader/dist/amd",
"main": "aurelia-loader"
},
{
"name": "aurelia-loader-default",
"path": "../node_modules/aurelia-loader-default/dist/amd",
"main": "aurelia-loader-default"
},
{
"name": "aurelia-logging",
"path": "../node_modules/aurelia-logging/dist/amd",
"main": "aurelia-logging"
},
{
"name": "aurelia-logging-console",
"path": "../node_modules/aurelia-logging-console/dist/amd",
"main": "aurelia-logging-console"
},
{
"name": "aurelia-metadata",
"path": "../node_modules/aurelia-metadata/dist/amd",
"main": "aurelia-metadata"
},
{
"name": "aurelia-pal",
"path": "../node_modules/aurelia-pal/dist/amd",
"main": "aurelia-pal"
},
{
"name": "aurelia-pal-browser",
"path": "../node_modules/aurelia-pal-browser/dist/amd",
"main": "aurelia-pal-browser"
},
{
"name": "aurelia-path",
"path": "../node_modules/aurelia-path/dist/amd",
"main": "aurelia-path"
},
{
"name": "aurelia-polyfills",
"path": "../node_modules/aurelia-polyfills/dist/amd",
"main": "aurelia-polyfills"
},
{
"name": "aurelia-router",
"path": "../node_modules/aurelia-router/dist/amd",
"main": "aurelia-router"
},
{
"name": "aurelia-route-recognizer",
"path": "../node_modules/aurelia-route-recognizer/dist/amd",
"main": "aurelia-route-recognizer"
},
{
"name": "aurelia-task-queue",
"path": "../node_modules/aurelia-task-queue/dist/amd",
"main": "aurelia-task-queue"
},
{
"name": "aurelia-templating",
"path": "../node_modules/aurelia-templating/dist/amd",
"main": "aurelia-templating"
},
{
"name": "aurelia-templating-binding",
"path": "../node_modules/aurelia-templating-binding/dist/amd",
"main": "aurelia-templating-binding"
},
{
"name": "aurelia-templating-resources",
"path": "../node_modules/aurelia-templating-resources/dist/amd",
"main": "aurelia-templating-resources"
},
{
"name": "aurelia-templating-router",
"path": "../node_modules/aurelia-templating-router/dist/amd",
"main": "aurelia-templating-router"
},
{
"name": "aurelia-testing",
"path": "../node_modules/aurelia-testing/dist/amd",
"main": "aurelia-testing",
"env": "dev"
},
{
"name": "aurelia-validation",
"path": "../node_modules/aurelia-validation/dist/amd",
"main": "aurelia-validation"
},
{
"name": "bluebird",
"path": "../node_modules/bluebird/js/browser",
"main": "bluebird.min"
},
{
"name": "bootstrap",
"path": "../node_modules/bootstrap/dist",
"main": "js/bootstrap.min",
"deps": [ "jquery", "popper.js" ],
"exports": "$.fn.button",
"resources": [
"css/bootstrap.min.css"
]
},
{
"name": "breeze-client",
"path": "../node_modules/breeze-client",
"main": "breeze.base.min",
"exports": "breeze"
},
{
"name": "breeze.modelLibrary",
"path": "../node_modules/breeze-client",
"main": "breeze.modelLibrary.backingStore"
},
{
"name": "breeze.dataService",
"path": "../node_modules/breeze-client",
"main": "breeze.dataService.webApi"
},
{
"name": "breeze.uriBuilder",
"path": "../node_modules/breeze-client",
"main": "breeze.uriBuilder.json"
},
{
"name": "jquery-ui",
"path": "../node_modules/jquery-ui/dist",
"main": "jquery-ui.min",
"deps": [ "jquery" ],
"exports": "$.autocomplete",
"resources": [ "jquery-ui.min.css" ]
},
{
"name": "popper.js",
"path": "../node_modules/popper.js/dist/umd",
"main": "popper.min",
"exports": "Popper"
},
{
"name": "pouchdb",
"path": "../node_modules/pouchdb/dist",
"main": "pouchdb.min"
},
{
"name": "toastr",
"path": "../node_modules/toastr",
"main": "toastr",
"deps": [ "jquery" ],
"resources": [ "build/toastr.min.css" ]
}
]
}
]
}
}

Resources