Aurelia.js
のテスト実装をheroku
で試している時に、バンドルされたファイルではなくてバンドル前のファイルをサーバ上で動かしてみたいと思い、jspm
をheroku
で実行してみようと試みました。
結構はまりどころがあったのでまとめてみたいと思います。
後々jspmのversionが7になったら改善されるらしいです。
今回はheroku
でScriptを実行する方法とあわせて、大量のjspm関連ファイルをgitからインストールする際に起こるエラーへの対処方を紹介したいと思います。
herokuのアプリケーションを作成するときに
herokuのアプリケーションを作成する際にheroku側で動くbuildpack
を指定できるのですが、今回はjspm
が動くようになるビルドパックを選択してみました。
(必ずしも必要かわかりません。package.json
のdependencies
にjspm
があれば良いだけかも)
heroku内でjspmやgulpやsassのビルドができるものがあったので入れてみます。
ビルドパックをアプリケーションを作る時に入れる場合
heroku create myappname --buildpack https://github.com/TimPetricola/heroku-buildpack-nodejs-jspm-gulp-sass.git
既存のアプリケーションにビルドパックを入れる
heroku buildpacks:set https://github.com/TimPetricola/heroku-buildpack-nodejs-jspm-gulp-sass.git -a myappname
jspm
だけでいいという方は下記の方がいいかもしれません
heroku create myappname --buildpack https://github.com/kudos/heroku-buildpack-nodejs-jspm.git
herokuでビルドできるようにpackage.jsonを設定する
heroku
側の設定はpackage.json
を設定することで可能です。
npm install後のアクション指定
package.json
のscripts
の項目にpostinstall
を追加してあげます。今回はjspm install -y
をpush
時に実行しています。
"scripts": { "start": "node app.js", "test": "gulp test", "e2e": "gulp serve webdriver-standalone e2e", "postinstall": "jspm install -y" }
Buildで走るエンジンの指定
engines
の項目でBuild時に実行されるエンジンのバージョンを指定できます。
自分の環境にあわせて設定します。
"engines": { "node": "0.12.x", "npm": "3.5.x", "jspm": "0.16.x" }
jspmのgithub configを設定する
認証していないとき容量が多いと動かなくなる場合があります。
下記のようなエラーが表示されます。
GitHub rate limit reached. To increase the limit use GitHub authentication. Run jspm endpoint config github to set this up.
このエラーがでた場合の修正手順を説明します。
⇒参考https://gist.github.com/topheman/25241e48a1b4f91ec6d4
1.githubにログインしてトークンをつくる
⇒https://github.com/settings/tokens
Personal settings
> Personal access tokens
上記ページで自分のトークンを作る。
2.JSPM_GITHUB_AUTH_TOKENを調べる
heroku
のjspm
のconfig
に設定するためにJSPM_GITHUB_AUTH_TOKEN
を調べます。
下記実行しユーザ名とトークンを入力
jspm registry config github
下記実行すると出力されます
jspm registry export github
出力
jspm config registries.github.remote https://github.jspm.io jspm config registries.github.auth JSPM_GITHUB_AUTH_TOKEN jspm config registries.github.maxRepoSize 100 jspm config registries.github.handler jspm-github
3.herokuのconfigに登録
まずはheroku
へログインします。
heroku login
jspm config registries.github.auth JSPM_GITHUB_AUTH_TOKEN
上記のJSPM_GITHUB_AUTH_TOKEN
部分に表示されている値をheroku
のconfig
に登録します。
heroku config:set JSPM_GITHUB_AUTH_TOKEN=exportで吐き出されたTOKEN
4.herokuへコミット!
先ほど作成したpackage.json
をheroku
へコミットします。git
の.ignorefile
等修正し、実行に必要なファイルを一緒にコミットします。
jspm
関連ファイルもheroku
側で追加されるためjspm_packages
フォルダ等は含まなくても良くなります。
jspm
のversionが上がると上記容量の問題も起こらなくなるそうです。
早く手間が省けるといいなと思います。