Closed kou029w closed 3 years ago
chirimen-oh/chirimen-raspi3
パッケージ @chirimen-raspi/polyfill
/polyfill.js
… いまの gc/polyfill/polyfill.jschirimen-oh/chirimen-drivers
パッケージ chirimen-drivers-**
/**/**.js
... いまの gc/drivers/**.jsTODO:
index.html から script src=node_modules/... で polyfill/drivers 読み込めると思ったら出来ない問題について少し整理した:
./node_modules 配下にアクセスするには container テンプレートが必要 https://github.com/codesandbox/codesandbox-client/issues/1757
サンプル: https://codesandbox.io/s/2p8ylq3rwr
example だしまぁまるごと突っ込んでしまうという方法
module は import するのが本来の使い方であり、import をちゃんと使えば node_modules 配下もちゃんと percel さんがよしなにやってくれる。
type=module 付けたくないなら dynamic import
まぁちょっとやりすぎ。
polyfill/drivers は適当に github pages でも何でも良いから
codesandbox の vanilla などの client template が percel 使ってくれたり static template ですら static ではないというのが大元のワナだった。percel 使うのも安直に使って dist をホストしているわけではないようだし...
比較的利用者への影響が少なそうなので「node_modules ごとコミットする」でとりあえず2019 Q3リリースは良いかなと考えます
パッケージ一覧: https://www.npmjs.com/org/chirimen-raspi
リポジトリ: ここ https://github.com/chirimen-oh/chirimen-raspi3
パッケージ: @chirimen-raspi/polyfill
リポジトリ: https://github.com/chirimen-oh/chirimen-drivers パッケージ一覧: https://github.com/chirimen-oh/chirimen-drivers/blob/f29c5945f4a4bac3dc61e49164142bcd60ba2110/README.md
gc 配下のサンプルコードを全て npm に移行したものに差し替えました
https://github.com/chirimen-oh/chirimen-raspi3/wiki/Contrib の手順書に、npm移行後の、新しいドライバ・examplesのcontribの仕方(作法)をどなたか記載していただければと思います。
https://github.com/chirimen-oh/chirimen-raspi3/wiki/Release こちらのwikiにも関係しそうですね。
特にこの手順の説明書が必要に思います。
npm module にして package.json を用意
以前はI2Cのドライバが一か所のディレクトリにまとまっていましたが、今はExamplesの中に入り込んでしまっている感じですよね? またpolyfillもExamplesの中にコピーが入り込んでる感じ。 CHIRIMEN with micro:bitからも、これらドライバを直リンクしていたのですが、直リンク先のドライバのURLがかなり冗長・煩雑になってしまった感じがするのも気になります。(今頑張ってCHIRIMEN with micro:bitのExamplesの内容を修正中・・) ちなみに、gc/polyfillはそのままあり、これがオリジナルという位置づけのようにみえますが、これと同じように、I2CのドライバもExamplesにばらけさせず、オリジナルの蓄積場所を設けたほうが良いと思います、
説明不足な部分で申し訳ないですが、それぞれのドライバーのリポジトリとしては https://github.com/chirimen-oh/chirimen-drivers を作成してオリジナルを集約してnpmにデプロイ、個別のサンプルは npm を介してローカルに保存(現在のExamples)か https://unpkg.com/ を利用する、という想定で考えていました
移動したことによって参照に失敗している問題があるのは意図して無かったです ミスってしまいました、すみません。。。
消さずにもとの場所に置いておいても不都合無いような気もします いかがしましょうか
ただ、相対パスで実ファイルを参照するという利用方法に関しては、非常にシンプルである一方で、ファイル構造に密結合になってしまっており、たとえばある対象のサンプルコードのあるディレクトリを別のディレクトリの階層に移動しただけで参照に失敗するという問題があります そのため、npm によってバージョン管理と依存関係の解決ができる、というのはメリットあると考えます
また、GitHub Pagesを介して参照するというのは、同じくリポジトリのパスの構造に依存するので、おっしゃるとおり「URLがかなり冗長・煩雑に」なりがちという問題があります そのため、https://unpkg.com/ を介して npm にアクセスするという方法が良いと考えます
ドライバー自体のパッケージ名に関しては、冗長なので直したい気持ちです。。。
Polyfill を参照するためのURL: https://unpkg.com/@chirimen-raspi/polyfill@1.0.1/polyfill.js Polyfill を参照するためのコマンド:
npm i @chirimen-raspi/pilyfill
# ./node_modules/@chirimen-raspi/polyfill/polyfill.js が得られる
polyfill / driver short urls (動かなくなった jsbin 修正ついでに見やすい短い小文字の URL で用意した):
https://r.chirimen.org/polyfill.js
https://r.chirimen.org/ads1015.js https://r.chirimen.org/adt7410.js https://r.chirimen.org/gp2y0e03.js https://r.chirimen.org/grove-accelerometer.js https://r.chirimen.org/grove-gesture.js https://r.chirimen.org/grove-light.js https://r.chirimen.org/grove-oleddisplay.js https://r.chirimen.org/grove-touch.js https://r.chirimen.org/pca9685.js https://r.chirimen.org/s11059.js https://r.chirimen.org/veml6070.js https://r.chirimen.org/vl53l0x.js
https://r.chirimen.org/ads1115.js https://r.chirimen.org/amg8833.js https://r.chirimen.org/arduino-steppingmotor.js https://r.chirimen.org/bme280.js https://r.chirimen.org/bmp180.js https://r.chirimen.org/bmp280.js https://r.chirimen.org/canzasi.js https://r.chirimen.org/mpu6050.js https://r.chirimen.org/ak8963.js https://r.chirimen.org/mpu6500.js https://r.chirimen.org/neopixel.js https://r.chirimen.org/pcf8591.js
リダイレクト先を取りあえず github pages にしてしまっているけど Verified official drivers の URL にした方が良いかな。そのあたりの URL 一覧・説明をするページが欲しいかも知れない?初心者は何も考えず r.chirimen.org/xxx.js 使ってもらってモジュール分かる人だけ分かれば良い?
移行済みなのでクローズします (残作業があればまた別途 isseu 立てましょう)
残件処理: r.chirimen.org/polyfill.js が github pages のままだったことで p5 Editor で次のように HTML から読み込もうとすると CORS エラーが出ていたので、ちゃんと Access-Control-Allow-Origin: *
を付与してくれる unpkg.com へとリダイレクト先を変更:
<script src="https://r.chirimen.org/polyfill.js"></script>
https://github.com/chirimen-oh/r.chirimen.org/commit/daa5eff7d5f993624fab868fbbd7d5f455d6fbfb
もともとの問題は解決済みだと思うのでクローズしますね。 もし問題があるようでしたら別Issueを起票するなどお願いします。 > @dynamis
chirimen-raspi3 環境のPolyfillと、chirimen環境に対応したそれぞれのデバイス用ドライバーをnpmパッケージにして、依存管理システムを導入する