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 --- static/.gitignore | 1 + static/Makefile | 11 ++++++++++- static/package.json | 6 ++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 static/package.json (limited to 'static') 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