diff --git a/packages/notification/assets/index.html b/packages/notification/assets/index.html index 9c6e2568d3bf21e81365ce2f308c643bca50d519..aba5bdddbe0b711f01ab65a6121ea51564285c65 100644 --- a/packages/notification/assets/index.html +++ b/packages/notification/assets/index.html @@ -2,7 +2,7 @@ <html> <head> <meta charset="UTF-8"> - <script type="module" id="vpu-notification-wc-src" src="bundle.js"></script> + <script type="module" id="vpu-notification-src" src="bundle.js"></script> </head> <body> diff --git a/packages/notification/karma.conf.js b/packages/notification/karma.conf.js index 901e07806c448e53fd84367917e67267a1836771..6a646f5ec9ea5a6c50dd25dc6038dd94fff1bc43 100644 --- a/packages/notification/karma.conf.js +++ b/packages/notification/karma.conf.js @@ -6,7 +6,7 @@ module.exports = function(config) { basePath: 'dist', frameworks: ['mocha', 'chai'], files: [ - './bundle.js', + {pattern: './*.js', included: true, watched: true, served: true, type: 'module'}, {pattern: './**/*', included: false, watched: true, served: true}, ], autoWatch: true, diff --git a/packages/notification/package.json b/packages/notification/package.json index 26902720812829dcd2f7e937eb921789a16fe19e..f120a394303b83294b22f98fd23039828b06ba0f 100644 --- a/packages/notification/package.json +++ b/packages/notification/package.json @@ -11,20 +11,22 @@ "puppeteer": "^1.15.0", "mocha": "^6.2.0", "chai": "^4.2.0", - "rollup": "^1.11.3", - "rollup-plugin-commonjs": "^9.3.4", - "rollup-plugin-copy": "^2.0.1", - "rollup-plugin-node-resolve": "^4.2.3", - "rollup-plugin-postcss": "^2.0.3", + "rollup": "^1.20.3", + "rollup-plugin-commonjs": "^10.0.2", + "rollup-plugin-consts": "^1.0.1", + "rollup-plugin-copy": "^3.1.0", + "rollup-plugin-delete": "^1.1.0", + "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-serve": "^1.0.1", - "rollup-plugin-terser": "^4.0.4", + "rollup-plugin-terser": "^5.1.1", "rollup-plugin-json": "^4.0.0", "rollup-plugin-multi-entry": "^2.1.0", - "rollup-plugin-replace": "^2.2.0", + "rollup-plugin-url": "^2.2.2", "i18next-scanner": "^2.10.2", "vpu-common": "file:./vendor/common" }, "dependencies": { + "bulma": "^0.7.5", "lit-element": "^2.1.0" }, "scripts": { diff --git a/packages/notification/rollup.config.js b/packages/notification/rollup.config.js index 92e6250bc295acd951eb7b4218fda5d7a218de3d..7bb210bc2f224573c77f22d4d5ba4833b3976db4 100644 --- a/packages/notification/rollup.config.js +++ b/packages/notification/rollup.config.js @@ -1,17 +1,40 @@ import path from 'path'; import resolve from 'rollup-plugin-node-resolve'; import commonjs from 'rollup-plugin-commonjs'; -import postcss from 'rollup-plugin-postcss'; import copy from 'rollup-plugin-copy'; import {terser} from "rollup-plugin-terser"; import json from 'rollup-plugin-json'; -import replace from "rollup-plugin-replace"; import serve from 'rollup-plugin-serve'; import multiEntry from 'rollup-plugin-multi-entry'; +import url from "rollup-plugin-url"; +import consts from 'rollup-plugin-consts'; +import del from 'rollup-plugin-delete'; +const pkg = require('./package.json'); const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local'; console.log("build: " + build); +let manualChunks = Object.keys(pkg.dependencies).reduce(function (acc, item) { acc[item] = [item]; return acc;}, {}); +manualChunks = Object.keys(pkg.devDependencies).reduce(function (acc, item) { if (item.startsWith('vpu-')) acc[item] = [item]; return acc;}, manualChunks); + +function getBuildInfo() { + const child_process = require('child_process'); + const url = require('url'); + + let remote = child_process.execSync('git config --get remote.origin.url').toString().trim(); + let commit = child_process.execSync('git rev-parse --short HEAD').toString().trim(); + + let parsed = url.parse(remote); + let newPath = parsed.path.slice(0, parsed.path.lastIndexOf('.')) + let newUrl = parsed.protocol + '//' + parsed.host + newPath + '/commit/' + commit; + + return { + info: commit, + url: newUrl, + env: build + } +} + export default { input: (build != 'test') ? 'src/demo.js' : 'test/**/*.js', output: { @@ -19,7 +42,13 @@ export default { format: 'esm' }, plugins: [ + del({ + targets: 'dist/*' + }), multiEntry(), + consts({ + environment: build, + }), resolve({ customResolveOptions: { // ignore node_modules from vendored packages @@ -30,21 +59,21 @@ export default { include: 'node_modules/**' }), json(), - replace({ - "process.env.BUILD": '"' + build + '"', - }), - postcss({ - inject: false, - minimize: false, - plugins: [] + url({ + limit: 0, + include: [ + "node_modules/bulma/**/*.css", + "node_modules/bulma/**/*.sass", + ], + emitFiles: true, + fileName: 'shared/[name].[hash][extname]' }), (build !== 'local' && build !== 'test') ? terser() : false, copy({ targets: [ - 'assets/index.html', - 'assets/favicon.ico' - ], - outputFolder: 'dist' + {src: 'assets/index.html', dest: 'dist'}, + {src: 'assets/favicon.ico', dest: 'dist'}, + ] }), (process.env.ROLLUP_WATCH === 'true') ? serve({contentBase: 'dist', host: '127.0.0.1', port: 8002}) : false ] diff --git a/packages/notification/src/utils.js b/packages/notification/src/utils.js index 92d5ba988575f97b4c5170e6b80305ee531239de..25e76d3eaecf590dabe58265949f4ef0fefbea23 100644 --- a/packages/notification/src/utils.js +++ b/packages/notification/src/utils.js @@ -7,4 +7,5 @@ export const createUUID = () => { }); return uuid; -} +}; + diff --git a/packages/notification/src/vpu-notification-demo.js b/packages/notification/src/vpu-notification-demo.js index 113b63ed8ed73183ba0925b96ae15e943b40e65e..3cb9a7314c064146b184bb3554bce0706d4c6fb0 100644 --- a/packages/notification/src/vpu-notification-demo.js +++ b/packages/notification/src/vpu-notification-demo.js @@ -2,7 +2,8 @@ import {i18n} from './i18n'; import {send as notify} from 'vpu-common/notification'; import {html, LitElement} from 'lit-element'; import './vpu-notification'; -import commonUtils from 'vpu-common/utils'; +import * as commonUtils from 'vpu-common/utils'; +import bulmaCSSPath from 'bulma/css/bulma.min.css'; class NotificationDemo extends LitElement { constructor() { @@ -25,10 +26,9 @@ class NotificationDemo extends LitElement { } render() { + const bulmaCSS = commonUtils.getAssetURL(bulmaCSSPath); return html` - <style> - </style> - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.5/css/bulma.min.css"> + <link rel="stylesheet" href="${bulmaCSS}"> <section class="section"> <div class="container"> diff --git a/packages/notification/src/vpu-notification.js b/packages/notification/src/vpu-notification.js index d9533455b4c3804eb22b5145878e2ebf6d9ddb91..7c86b2609057721b3eb8362ec52b175e012b4005 100644 --- a/packages/notification/src/vpu-notification.js +++ b/packages/notification/src/vpu-notification.js @@ -2,7 +2,8 @@ import {i18n} from './i18n'; import {createUUID} from './utils' import {html} from 'lit-element'; import VPULitElement from 'vpu-common/vpu-lit-element'; -import commonUtils from 'vpu-common/utils'; +import * as commonUtils from 'vpu-common/utils'; +import bulmaCSSPath from 'bulma/css/bulma.min.css'; /** * Notification web component @@ -74,8 +75,10 @@ class VPUNotification extends VPULitElement { } render() { + commonUtils.initAssetBaseURL('vpu-notification-src'); + const bulmaCSS = commonUtils.getAssetURL(bulmaCSSPath); return html` - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.5/css/bulma.min.css"> + <link rel="stylesheet" href="${bulmaCSS}"> <style> #notification {position: fixed; top: 0; max-width: 500px; margin: 0.75em auto; left: 0; right: 0; z-index: 1000; padding: 0;} .notification h3 {font-weight: bold; margin-bottom: 3px;} diff --git a/packages/notification/vendor/common b/packages/notification/vendor/common index 378256b0ae92712fd5b8feed3a987cd014617c0b..adbdf63736ba48eaf93ca06f83ee3652b7f85f12 160000 --- a/packages/notification/vendor/common +++ b/packages/notification/vendor/common @@ -1 +1 @@ -Subproject commit 378256b0ae92712fd5b8feed3a987cd014617c0b +Subproject commit adbdf63736ba48eaf93ca06f83ee3652b7f85f12