Closed satakagi closed 5 years ago
rawgit経由で、ここのコードを参照
具体的には以下の通り
https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/polyfill/polyfill.js
https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-ADS1015.js https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-ADT7410.js https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-GP2Y0E03.js https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-PCA9685.js https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-S11059.js https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-VEML6070.js https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-arduino-steppingMotor.js https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-canzasi-blink.js https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-grove-accelerometer.js https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-grove-gesture.js https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-grove-light.js https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-grove-oledDisplay.js https://rawgit.com/chirimen-oh/chirimen-raspi3/master/gc/drivers/i2c-grove-touch.js
ちなみに、以下のURLで取ってこれるのはなぜなのでしょう?確かに更新されているものが取れているようです。
https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-PCA9685.js
これができるならrawgitではなくこちらの方が良いような気もしますがどうでしょうか?
https://chirimen.org/chirimen-raspi3/gc/polyfill/polyfill.js
https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-ADS1015.js https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-ADT7410.js https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-GP2Y0E03.js https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-PCA9685.js https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-S11059.js https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-VEML6070.js https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-arduino-steppingMotor.js https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-canzasi-blink.js https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-grove-accelerometer.js https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-grove-gesture.js https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-grove-light.js https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-grove-oledDisplay.js https://chirimen.org/chirimen-raspi3/gc/drivers/i2c-grove-touch.js
Slack でやりとりされていたとおり、github pages を有効にしていれば chirimen.org/${repository name}/path/to/file でアクセスが可能になりなおかつその時は content-type http response header も適切に設定されるため読み込み先の CDN として使うことも可能となっているという状況です。
別途該当ディレクトリだけを netlify などに載せて cdn.chirimen.org とかで配信することなどもありかなと思っていましたが、シンプルに実現できてオリジナルのリポジトリが何処にあるものなのかも明確になって良い気がするので、最新の master ブランチのホストとしては十分そうです。
任意の古いリリースバージョンのファイルを参照させたいときには rawgit を挟むか、branch deploy をサポートしている netlify などのサービスに突っ込んで各ブランチにも URL を設定させるかなどでしょうか。需要としては現行の polyfill.js 本体が多いので、それについてはバージョン毎のファイルを polyfill ディレクトリに置いておく命名規則に変更したら解決できる気がします。具体的には
https://chirimen.org/chirimen-raspi3/gc/polyfill/chirimen-raspi3-latest.js
などで参照できるようにファイル名規則を変えていくという話です。
なお、うっかり http 側の URL を使ってしまわないようには注意が必要かも知れません (現在のところ chirimen.org は http -> https への強制切替 HSTS がセットアップされていないので)
次に既存のコードからの読み込み先を書き換える:
ただし、gc, _gc とか tutorial 本文のサンプルなどは、外部リンクじゃなくてセフルホストしている raspi3 上のコードを読み込むようにしなければインターネット接続不要での開発が可能にならないので、そのあたりは注意して書き換える必要がありそう。ひとまずリモートで良いからいっきり書き換えてからまたローカルのみで動作するように整理することを別 issue で考えた方がよさそう。
example からのリンクを入れ替えていて気づいたのですが https://chirimen.org/chirimen-raspi3/... という project 毎の github pages でのアクセスは https://chirimen.org/ サイト全体を github pages で運用している場合に限って有効です。
メインサイトに他のシステムを入れるときにはアクセス不能になってしまうという問題があるため専用のドメインを与えてデプロイする形に変えた方が良いかも知れない。
note: Netlify の自動デプロイでシェルスクリプトや npm のコマンド類が (依存パッケージのインストール込みで) 使えるので必要なディレクトリ、JS ファイルだけをコピーしたり必要に応じてファイル名を変えたり、minify したバージョンも作ったり、リダイレクトを設定したりしたサイトを作る簡単なスクリプトで書くと比較的シンプルかつ柔軟にリリースできそう。
npm 化の副作用対策を慌ててやった時に今後の変更もまだありそうだから r.chirimen.org 化してしまった
https://github.com/chirimen-oh/chirimen-raspi3/issues/68#issuecomment-521204209
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
いずれも従来はhttps://mz4u.net/libs/gc2/ 下のファイルになっており、ここへのリリース作業はgithubリリースと連動・自動化されているわけではないようです。(このサイトのファイルの更新は2018年2月)
とはいえ、jsbjn内のコードなのでこのリポジトリが直接影響を受けるわけではないですが、ここでリリースされたコードが自動的に参照できるようになることが望ましいと思います。
ひとまず私が作るコードは、rawgit経由でこのリポジトリのコードを参照するようにしてみますが、tutorialsと同じ仕組みで載せるのが良さそうに思えます。