chirimen-oh / chirimen

CHIRIMEN for Raspberry Pi
https://chirimen.org/chirimen/
13 stars 17 forks source link

CSB の Vanilla (Parcel) を使った場合でもエラーが起きないようにしたい #115

Open dynamis opened 2 years ago

dynamis commented 2 years ago

CHIRIMEN ではサンプル集を基本 CSB で提供する習慣が付いているが、CSB 初心者 (ではなくとも) よくハマる問題として "Static" テンプレートではなく "Vanilla" テンプレートを使ってコードを書き始め、Parcel が暗黙で変換する影響を受けてしまうという罠がある。

具体的には Parcel では JS ファイルをモジュール化するため、main.js でグローバル変数やグローバル関数のつもりで宣言して HTML 側の onclick 属性値などにて参照・呼び出し仕様とすると Reference Error が表示される。

対策案:

取りあえず最後の「FAQ に書く」という対処は行っておいたが、長期的には addEventListener コードにしていく方が良いのではないかと思ったりもする (ので issue として書き残した)

コピペして動かない FAQ に説明を追加: https://github.com/chirimen-oh/chirimen.org/blob/master/raspi/debug.md#example-%E3%82%92%E3%82%B3%E3%83%94%E3%83%9A%E3%81%97%E3%81%9F%E3%81%AE%E3%81%AB%E5%8B%95%E3%81%8B%E3%81%AA%E3%81%84

参考: https://stackoverflow.com/questions/64429055/parcel-and-global-variables-in-js https://blog.hitsujin.jp/entry/2020/03/28/020000