From c0968d263d5531d21a6ff9df111d63ca2c6e43fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Fri, 5 Nov 2021 19:34:01 +0100 Subject: Start depending on npm. Chromium can't handle JavaScript-modules in XHTML-document [1]. The workaround is to use a javascript bundler. Here we start depending on browserify. I evaluated both that and webpack, and browserify seemed to work marginally better with typescript. Unfortunately this also makes us depend on npm, where we unfortunately already are bloatet... $ ls static/node_modules | wc -l 174 [1]: https://bugs.chromium.org/p/chromium/issues/detail?id=717643 --- module/calp/html/view/calendar.scm | 35 ++++++++++++++++++++--------------- static/.gitignore | 1 + static/Makefile | 11 ++++++++++- static/package.json | 6 ++++++ 4 files changed, 37 insertions(+), 16 deletions(-) create mode 100644 static/package.json diff --git a/module/calp/html/view/calendar.scm b/module/calp/html/view/calendar.scm index f9c60279..727fd8ba 100644 --- a/module/calp/html/view/calendar.scm +++ b/module/calp/html/view/calendar.scm @@ -104,21 +104,26 @@ ,(include-alt-css "/static/dark.css" '(title "Dark")) ,(include-alt-css "/static/light.css" '(title "Light")) - (script (@ (defer) (src "/static/types.js"))) - (script (@ (defer) (src "/static/lib.js"))) - (script (@ (defer) (src "/static/jcal.js"))) - (script (@ (defer) (src "/static/dragable.js"))) - (script (@ (defer) (src "/static/clock.js"))) - (script (@ (defer) (src "/static/popup.js"))) - ;; (script (@ (defer) (src "/static/rrule.js"))) - ;; (script (@ (defer) (src "/static/binders.js"))) - (script (@ (defer) (src "/static/server_connect.js"))) - ;; (script (@ (defer) (src "/static/input_list.js"))) - ;; (script (@ (defer) (src "/static/date_time.js"))) - ;; (script (@ (defer) (src "/static/vcal.js"))) - (script (@ (defer) (src "/static/script.js"))) - (script (@ (defer) (src "/static/vevent.js"))) - (script (@ (defer) (src "/static/globals.js"))) + ;; (script (@ (defer) (src "/static/types.js"))) + ;; (script (@ (defer) (src "/static/lib.js"))) + ;; (script (@ (defer) (src "/static/jcal.js"))) + ;; (script (@ (defer) (src "/static/dragable.js"))) + ;; (script (@ (defer) (src "/static/clock.js"))) + ;; (script (@ (defer) (src "/static/popup.js"))) + ;; ;; (script (@ (defer) (src "/static/rrule.js"))) + ;; ;; (script (@ (defer) (src "/static/binders.js"))) + ;; (script (@ (defer) (src "/static/server_connect.js"))) + ;; ;; (script (@ (defer) (src "/static/input_list.js"))) + ;; ;; (script (@ (defer) (src "/static/date_time.js"))) + ;; ;; (script (@ (defer) (src "/static/vcal.js"))) + ;; (script (@ (defer) (src "/static/script.js"))) + ;; (script (@ (defer) (src "/static/vevent.js"))) + ;; (script (@ (defer) (src "/static/globals.js"))) + + ;; (script (@ (type module) (src "/static/script.js"))) + ;; (script (@ (src "/static/dist/main.js"))) + (script (@ (src "/static/script.out.js"))) + ;; (script (@ (src "/static/build.js"))) ;; on load diff --git a/static/.gitignore b/static/.gitignore index 3153016b..3d4116d2 100644 --- a/static/.gitignore +++ b/static/.gitignore @@ -11,3 +11,4 @@ script.js server_connect.js types.js vevent.js +*.out.js diff --git a/static/Makefile b/static/Makefile index 821489bc..7a541bf6 100644 --- a/static/Makefile +++ b/static/Makefile @@ -1,10 +1,19 @@ .PHONY: all clean watch -TARGETS := style.css smallcal.css +TARGETS := style.css smallcal.css script.out.js WATCH= +export PATH := $(shell npm bin):$(PATH) + all: $(TARGETS) +%.map.json: %.out.js + tail -n1 $< | tail -c+65 | base64 --decode | jq '.' > $@ + +# r!browserify --list script.ts -p tsify | xargs -L1 basename | tac +script.out.js: script.ts popup.ts globals.ts vevent.ts types.ts dragable.ts clock.ts lib.ts + browserify $< -p tsify --noImplicitAny --debug -o $@ + watch: $(MAKE) WATCH=--watch all diff --git a/static/package.json b/static/package.json new file mode 100644 index 00000000..a25830a1 --- /dev/null +++ b/static/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "browserify": "^17.0.0", + "tsify": "^5.0.4" + } +} -- cgit v1.2.3