npm でパッケージ管理

npm アップデート

npm 自体をアップデートする

$ npm --version
$ npm install -g npm

npm でインストールされているパッケージの確認

プロジェクト

$ npm ls

グローバル

$ npm ls -g

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

グローバル

$ npm install -g vue

プロジェクト(package.jsonに書込む)

$ npm install --save-dev grunt
or 
$ npm install --D grunt

AWS の ElasticBeanstalk でログファイルを CloudWatch に転送する

SpringBootで作成したWebアプリケーションをElasticBeanstalkで運用していてAutoScalingなどでEC2が削除されると、EC2上に保存されているログファイルも当然削除されてしまう。
削除される前にログファイルをどこかに保存したいと思うのですが、その一つの方法としてCloudWatchに転送することにする。

ElasticBeanstalkにはCloudWatchにログファイルを連携する機能がありますが、今回はアプリケーション独自のログを連携したいのでこの機能(CloudWatch Logs へのインスタンスログのストリーミング)は使いません。

アプリケーションから出力した独自ログとapacheのログを転送することにします。
CloudWatchへの転送にはawslogsを使用します。
awslogsのインストールなどEC2への操作などはデプロイするWebアプリケーション内に設定ファイルとして追加します。
具体的には、アプリケーションの src/main/webapp/.ebextensions 以下に配置します。

.ebextensions 以下にconfigファイルを配置しますが、awslogsを使う場合は以下のような内容です。

packages:
  yum:
    awslogs: []
container_commands:
  1-cp-awscli_conf:
    command: cp -rf .ebextensions/awscli.conf /etc/awslogs/awscli.conf
  2-cp-awslogs_conf:
    command: cp -rf .ebextensions/awslogs.conf /etc/awslogs/awslogs.conf
  3-chkconfig-awslogs:
    command: /sbin/chkconfig awslogs on
  4-restert-awslogs:
    command: /sbin/service awslogs status; if [ $? -eq 0 ]; then /sbin/service awslogs restart; else /sbin/service awslogs start ; fi;

awslogsの設定ファイルも予め用意しておいて、そのファイルコピーします。
最終的なファイル構成はこんな感じです。

awscli.conf、awslogs.conf の内容も参考までに。

awscli.conf

[plugins]
cwlogs = cwlogs
[default]
region = ap-northeast-1

awslogs.conf

[general]
state_file = /var/lib/awslogs/agent-state

[/var/log/httpd/access_log]
log_group_name = sample_app
log_stream_name = {instance_id}_httpd
file = /var/log/httpd/access_log
datetime_format = %d/%b/%Y:%H:%M:%S
initial_position = start_of_file
buffer_duration = 5000

[/var/log/tomcat8/sample_app.log]
log_group_name = sample_app
log_stream_name = {instance_id}_app
file = /var/log/tomcat8/sample_app.log
datetime_format = %Y-%m-%d %H:%M:%S.
initial_position = start_of_file
buffer_duration = 5000

もちろんログのファイル名や、日付けフォーマットなどを合わせる必要があります。

svg に外部の画像を使う

Webサイトなどのhtmlでsvgを使う際に、svg内にサーバー上の画像などを使う場合、xlink:href 属性で画像を指定する。

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="200px" height="200px" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve">
    <g>
        <image x="0" y="0" width="200" height="100" xlink:href="images/xxxxx.png"></image>
    </g>
</svg>

Eclipse PHOTON を日本語化(Mac)

Eclipse PHOTONを日本語化する。
All in One を使うのが早いが、余計なプラグインなど入っていないのが好みなのでPleiadesを自分で追加する。
Javaはインストール済みの前提で。

  1. Eclipse をダウンロード
    ここから、”Mac OS X (Cocoa) 64-bit”を選択してダウンロード。

  2. パッケージの展開
    ダウンロードしたファイルを展開し、Eclipse.appを任意の場所にコピー。
    Applications以下でも良いが、個人的にはいくつかのバージョンを使っているのでディレクトリを分けています。

  3. Pleiades をダウンロード
     ここダウンロードします。

  4. Pleiades を展開、適用
    ダウンロードしたファイルを解凍し、”setup.app”を起動。セキュリティの関係で、右クリックから”開く”で起動する。
    起動したアプリで、Eclipse.appを選択して”日本語化する”をクリック。