Alexaの緊急連絡スキルを作る(2)
"nodemailer"パッケージを追加します
4. Node.jsを自分のマシンにインストールする
"nodemailer"パッケージを追加すると言っても、単にインターネット上で"nodemailer"を検索してダウンロードし、解凍した物をフォルダーに放り込むなどと言うお手軽な方法ではありません。先ず、自分のマシンに Node.js をインストールする必要があります。
Node.js はNode.jsの公式ホームページ
から自分のマシンに合ったものをダウンロードします。バージョンは、AWSの Node.js が 6.10 ですから、それ以降のものであれば大丈夫だと思います。また最新版でなくても現在の推奨版で充分で、どうしてもAWSのバージョンに合わせたければ、「ダウンロード」から"All download options"を辿って Node.js v6.10.3などを入手しても良いでしょう。
Node.jsのインストーラをダウンロードしたら、自分のマシンにインストールします。ここではmacOS用のNode.js v8.9.4インストーラpkgをダウンロードして、インストールしています。インストールは普通のインストーラと同じで、単にボタンをクリックして行くだけですから、特に操作に迷うことはないと思います。
5. "MyEmergency"関数に"nodemailer"パッケージを追加する
Node.jsでパッケージを追加するには、ターミナルでnpmコマンドを使用して行います。npmは、Node.jsのパッケージ管理の仕組みで、パッケージの導入(インストール)の際、依存関係があるパッケージを自動的にインストールしてくれたり、インストール済みのパッケージの更新などの支援をしてくれます。Linuxにおけるrpm、yum、aptなどのNode.js版と思えば良いでしょう。
パッケージの追加には、Node.jsシステムに組み込む方法(グローバルインストール)と、作成中のアプリケーションの"node_modules"配下に追加する方法(ローカルインストール)があります。今回は"MyEmergency"関数に"nodemailer"パッケージをローカルインストールします。
$ cd ~/work/MyEmergency
$ ls -l
total 24
-rw-rw-r-- 1 nai staff 7724 2 11 01:51 index.js
drwxrwxr-x 6 nai staff 192 7 5 2017 node_modules
-rw-rw-r--@ 1 nai staff 139 7 5 2017 package.json
$ npm --save install nodemailer
npm notice created a lockfile as package-lock.json. You should commit this file.
+ nodemailer@4.4.2
added 16 packages in 9.623s
|
「3. Lambda関数をダウンロードする」でダウンロードした"MyEmergency"関数を置いたディレクトリに移動して"nodemailer"パッケージを(--saveオプションを指定して)ローカルインストールしています。この時、依存関係があるパッケージも一緒にインストールされるため、インストール後の"node_modules"ディレクトリは以下のような状態になりました。
しかし、AWSのNode.jsに既に組み込まれている物ばかりですので、最初から"node_modules"ディレクトリに入っていたパッケージと"nodemailer"パッケージを残して、他は削除してしまって構わないようです。また"package-lock.json"ファイルも無くても大丈夫なようです。と言うことで、以下のような状態にします。
$ ls -l
total 24
-rw-rw-r-- 1 nai staff 7724 2 11 01:51 index.js
drwxrwxr-x 8 nai staff 256 2 11 14:35 node_modules
-rw-rw-r--@ 1 nai staff 167 2 11 14:28 package.json
$ ls -l node_modules
total 0
drwxrwxr-x 10 nai staff 320 2 11 10:57 alexa-sdk
drwxrwxr-x 15 nai staff 480 2 11 10:57 i18next
drwxrwxr-x 11 nai staff 352 2 11 10:57 i18next-sprintf-postprocessor
drwxr-xr-x 8 nai staff 256 2 11 14:28 nodemailer
|
[続く]
Node.jsのインストールなんて面倒臭い?自分のマシンに余計なものをインストールしたくないって?そんな方は、以下からMyEmergency関数(zipファイル)をダウンロードして、それをデプロイ(アップロード)することができるようにしておきました。
MyEmergency.zip
もし、ダウンロードの際にzipファイルが解凍されてしまった場合は、Alexaの緊急連絡スキルを作る(4)を参照し、zipファイルを作成し直してアップロードしてください。
|