generated at
import を使った UserScript は実行されないことがある
2024-05-03 現在この現象は起きないと考えていいですtakker
以前は、同じタブでprojectを移動したとき、ページを再読込せずhistory APIを使って遷移していた
その際以前の <script> が残ったままになったり、新しい <script> がうまく読み込まれないことがあった
今はprojectを移動するとき必ず再読込されるので、常に実行されると思っていい

script.js
import "/api/code/~~~";

他のプロジェクトに遷移してから、UserScript が書かれたプロジェクトに再び戻ると、 import "/api/code/~~~"; が実行されないっぽい?hata6502


解決方法
script.js
import {run~~~} from "/api/code/~~~"; run~~~();

run~~~() でラッピングすると、プロジェクトを遷移したときでも UserScript が実行された。

おそらくimportの副作用が、ESModuleの読み込み時の一回だけしか実行されないからですtakker
import {run} from "xxx";run(); なら、 run() を何回でも実行できるので、 <script src="xxx/script.js" /> の読み込みに合わせて何度でも実行されるのでしょう
なるほどです🙏hata6502
副作用を使わずに run() のほうが、引数を与えることもできて便利そう。