Angular-materialで言語切替&クッキー保存&デフォルトはブラウザ言語

パッケージをインストール

HTML

AngularJS

 

 

 

 

 

MEAN.IOってフロントエンドをChromeの開発ツールでデバッグしづらい

先に書いたように

MEAN.IOは使用するjavascriptを/bundle/app.jsにまとめてくれる。

なので、軽くなるのだがその分デバッグがしづらい。

Chromeの開発ツールを使うのは不可能。。

node_componentsの中身をデバッグする必要はないので、そこがまとめられているのは

ヨシとして、

packagesの中身がまとめられるのはやめる。

デフォルトで/app.js の45行目あたりpackages内をまとめる部分をコメントアウト

/packages/custom/…./server/views/includes/foot.html

にハードコーディングでインサートしていく。

 

 

MEAN.IOでnpmでjavascriptのパッケージインストール・インポート

件名の通り

まずは、入れたいパッケージをnpmでインストール

/app.jsの上の方に

して

angular-translateを/bundle/app.jsにもとめて入れ込んでくれる。

mean.ioのデフォルトでインストールした状態なら

/packages/custom/…./server/views/includes/foot.html

と書かれているはず。

gulpでbowerのパッケージを自動挿入

gulp-injectを使う。

インストール(開発環境だけでいいので、–save-dev)

挿入されるhtmlを編集

パッケージの挿入先を指し示すためgulpfile.js編集

取り敢えずテスト的にbower

リターン連続

でangular-translateをインストール

bower.jsonを確認

dependenciesに挿入されて

bower_componentsフォルダにangular-translateがインストールされているのを確認。

では、gulp wiredepを実行。

↓はhead.html, foot.htmlに設置

これでちゃんとhead.html, foot.htmlにbowerからのcss, javascriptが挿入されていることを確認。

基本は相対パスで挿入されてしまう。

絶対パスがいいので↓のようにgulpfile.jsを変更

 

 

 

AWSのCodeCommitはまだ未成熟

AWSの提供するサービスでCodeCommitと言うものがある、

これは要はGitHubみたいな動きをしてくれるのだが。。

ちょっと何かと惜しくて。

煩わしいです。

私の場合、AWSを使っているからといって使ってみたら

Macからgit cloneをしようとしても403エラーを回避できなくなってしまいました。

Macの403エラー回避方法がAWSオリジンのサイトに乗っているので、

その方法でKeyChainなどをいじったり、やってみたのだが、全く効果なし。

残念ですが、取り敢えず今のところCodeCommit自体を使うことが間違えという結論に至りました。

 

 

MEAN.IOをVagrantの共有フォルダで使うのに向いてない

今までの開発の方式にならってMEAN.IOを使うのにも

Vagrantの共有フォルダで開発をしていたが、結論から言うと

MEAN.IOを使うときはVagrantの共有フォルダは絶対に使わないほうがいい。

MEAN.IOの折角の便利な機能が全然使えなくなるし、

エラーが連発する。

工夫したら使えるようにする事もできなくはないが、

断然効率が悪い。

原因の多くは、Vagrantの共有フォルダでchmodができないことにある。

頑張って結局できなかったことがおおくて、悔しかったので記録しておく。

Vagrantの共有フォルダでNode.jsを編集するたびに自動再起動する

結論から、

私の結論としてはnodemonを使うしかないかと。

ソース監視の方式に

nodemon

supervisor

node-dev

pm2

っといったアプリがありますが、すべてデフォルトではVagrantの共有フォルダに反応してくれません。

試行錯誤で結局全て試してしまったので、紹介する。

Nodemonをインストール

nodemonをインストール

後はnodeコマンドの代わりにnodemonを使うだけ

これがスタンダードなやり方。

VagrantのSynced folderを使っている場合には遅くするために”L”というオプションをつけて、

っとしなくてはいけないのですが、これが何故か上手くいかない。

何故かと言うと、↑のコマンドではファイルの更新を監視する対象(watch)

が「*.*」っとなっている、これでは同階層のファイルに対する変更しか監視しない。

監視したい対象は自分で指定する必要がある。

私の場合はこんな感じ。

これでOK。

Vagrantの共有フォルダで更新を監視したいだけなら、ココまでの部分でOK。

以降は蛇足。

Supervisorのインストール。

supervisorをインストールした。

無視するファイルとディレクトリの指定は -i

npmでインストールをかけたときに異常に再起動しないために

としてみたけど、結局VagrantのSynced Folderでは、これも結局使えない。

Node-devのインストール

PM2のインストール

$ npm install pm2 -g

こうです。

そうするとこう。

ただひとつ残念なのが、今まで標準出力でリアルタイムに監視できてたログが見えなくなってしまうこと、標準出力がどこに言っているかというと

~/.pm2/logs/ ここ

ここに、

エラー:server-error-0.log

標準出力:server-out-0.log

っとわけて収納されている。

リアルタイム監視をしたいなら

っとすればリアルタイム監視ができます。

pm2での監視もういいよってなったらこう。

ただSynced Folderで使えない。

Node.jsでSSHからサーバを起動するけどBroken Pipeで止まっちゃう

件名の通り、

で起動したNode.jsのサーバがSSHでのログインが切れると止まってしまう。

正確な理由は、サーバのログ出力でエラーが発生したから。

Broken PipeするとSSHでのログインが切れる、ログインが切れると標準出力がなくなる、そうすると、、エラーが発生してサーバが落ちる。

っということ。

なのでログの吐き出し先を示してやる、かつバックグラウンドで走るように”&”をつけてやる。

これで、ログオフしてもserverが走り続けてくれる。。

と思ったらダメでした。

npmで発行してるnodeでリリース用のアプリがありました。

をインストール。

これでOK。

意味はserver.jsをサービスとして実行したということ。

AWSでGitを使う

AWSの環境ではどうやらCodeCommitというサービスを利用しなくてはいけないみたい。

AWS CodeCommitでは、Gitリポジトリのアクセス権限もIAM(Identity and Access Management)で管理されている。

IAMとは、「AWSユーザーに対して AWSのリソースへのアクセスできる範囲やアクセス方法を安全に制御するためのウェブサービス」のこと。

AWSの管理画面のダッシュボードから”IAM”の文字列でサービスをサーチ。

IAM_Management_Console

ユーザ名を設定、

IAM_Management_Console_2

次のステップ、グループ作って、ユーザ登録

試しにグループ名を「developers」として、

「AWSCodeCommitFullAccess」というパーミッションを設定する。

IAM_Management_Console

 

作成した「uploader」を覗いてみる。

Security credentialsのタブを叩いて

HTTPS Git credentials for AWS CodeCommit

でGenerate。

codecommit-iam-gc1

UsernameとPasswordもコピーしておく、

もしくは、CSVもダウンロードしておく。

CSVの中身はUsernameとPassword。

codecommit-iam-gc2

AWS CodeCommit Consoleに接続してレポジトリを作成する。

https://console.aws.amazon.com/codecommit

選択してる地域(region)がCodeCommitの対象外だと

AWS_Management_Console

 

みたいな感じでサポートされている地域の選択を促される。

仮に「US East(N.Virginia)」を選択する。

選択すると次のような画面。Get startedをクリック。

AWS_CodeCommit_Management_Console

レポジトリの名前をいれる。Create repositoryをクリック。

AWS_CodeCommit_Management_Console

すると次のような画面

AWS_CodeCommit_Management_Console

丁寧にチュートリアルが出てくるので、これに従って作業する。

GitとAWSはすでにインストールされている。

http_—_ec2-user_ip-172-31-22-208___—_ssh_-i___Documents_working_20170214PorkYou_SSHPrivateKey_PorkYou_pem_ec2-user_54_169_104_147_—_119×47

AWS CodeCommit managed policyはすでに「AWSCodeCommitFullAccess」が設定されている。

それで、ローカルマシーンに戻って

上で設定したuploaderのusernameとpasswordを入れてクローンする。

 

 

 

ローカルマシーン(MAC)に戻って、Gitがインストールされていなかったらインストールする。

次にAWS CLIをインストール。

AWS CLIとはコマンドラインインターフェース

 

これをインストールする、、のだが

それを入れるためにpipをインストールする必要がある。

pipとはPythonのパッケージマネージェのこと。

でインストール

OK。インストールされている。

AWS CLIのインストール