chromebookでサーバーレスシングルページアプリケーションの勉強を始めた

エンジニアとして働き始めて数年になり、それなりに知識と経験もついてきたのでそろそろなんか自分の勉強してみるかと思い以下の本を購入。

 

 

 下調べはして、事前に開発者モードで起動済み。

参考にしたサイトは以下。

Chromebookに開発環境を実装する方法2 ― Chromebrew編 | Chrome速報

ChromeOSを開発マシンにするために知っておく基本的な3つのこと - Qiita

Chromebookで開発環境を整えるためにしたこと - Qiita

こうやって先人が情報を残してくれたからなんとか開発を進められてると思うと、まだ少ない日本のChromebookユーザーが今後増えた時、いずれ困る人のためにこうやって情報を残しとくべきなのかなと思いブログを始めたので、この人たちは僕がブログを始めるきっかけを作った人ですね。

 

さて、開発環境を整えるということでchromebrewのインストールを行う。これを入れると勝手にいろいろinstallしてくれるみたいです。

 

 時間がかかるようなので寝る前にコマンドを実行。

$ wget -q -O - https://raw.github.com/skycocker/chromebrew/master/install.sh | bash

 

翌朝確認してみると

installed!

 

さっそく本を読み進めていくと、どうやらgitで既存のworkspaceを落としてくるみたいです。

ふむふむ。chromebrewでgitは入っているので、本に記載されたgitコマンドを使ってworkspacecを落としてきます。

中を確認してみるとhtmlとjsフィル1つずつをいじりながらアプリケーションを作り上げていき、1つの別のjsファイルでテストも同時に作成していくようです。他にも当然いくつかのライブラリが入ってます。

 

しかも実行するとローカルサーバーとしてすぐに編集内容が確かめられるようなファイルも用意されています。

さっそく実行してみると、、、エラー。。

 

ようやく始められると思ったのに。

エラー内容を見てみるとpythonが入ってね~とのこと。

 

あれ?chromebrewでpythonも入るって見たけどなぁ。 

binディレクトリを確認してみると確かにpythonは入ってないし、むしろchromebrewで勝手に入るって聞いてたものが全然入ってない。

なんじゃこりゃ??

 

仕方がないのでpythonだけ落としてみる。

 

$ chromebrew install python

 

なんかディレクトリの作成に失敗したとかいうエラーでpython落とせない。

なんやねん!!

 

エラー内容でググってみるとこれまた英語のサイトしか引っかからん 笑

なんとか英語を読み解いていろんなサイトを見てみると、どうやらchromebrewのバグがある様子。

幸いなことにjam7さんという方が、これを修正したものをgitに公開してくれているようので、chromebrewを入れ直すことに。

せっかく新品なのでキレイな状態にしておきたいということで、powerwashをして再度やり直し。

 

$ wget -q -O - https://raw.github.com/jam7/chromebrew/master/install.sh | bash

 

時間がかかるそうなので外に飯を食いに行き、帰ってきて確認すると

installed!!

 

今度はこのタイミングでbinディレクトリを確認すると、python入ってますよ〜!jam7さんマジありがてぇ〜。

コマンド叩いてみても動きますね

よしよし。

ただ、pythonコマンドではなくpython3コマンドじゃないと動かない様子。

ほーん。そんななんかぁと思いつつ、前回できなかったローカルサーバーの立ち上げまで進め、サーバー起動のコマンドを再度実行!

 

。。。

エラー!!

 

ぐぬぬぅ。。

ただ今回は間違いなくpythonが入っていることはわかっている。

なぜ動かないのか考えてみるとさっきのpython3コマンドじゃないと動かないというのが気になる。

サーバーを起動するファイルの中を確認してみるとpythonコマンドで実行しようとしてしまっている様子。これらを全部python3に書き換えて再度実行!!

 

serving...

 

お見事!

 

ってことでようやく進められる!

 

後から思ったけどpythonコマンドをpython3コマンドに書き換えるんじゃなくて、shellのエイリアスpythonコマンドでpython3が実行されるようにした方がよかったかなぁ。