[Deno] ライブラリをimportする

Denoを触ってみた際のメモです。 Denoはnpmなどのパッケージマネージャーは存在しません。 ライブラリを利用するにはライブラリのコードが存在するURLを指定してimportします。 もちろんローカルにあるファイルを相対パスでimportすることも可能です。URL指定したimportの形式は以下のようになります。 例えば、標準のlogパッケージを利用するときは以下のように書きます。 依存しているモジュールはメインの関数を実行するときに、指定されたURLからローカルにダウンロードされます。 2回目の実行時はURLにはアクセスせず、ローカルのダウンロードを利用します。

GitHubのテンプレートリポジトリ機能について

GitHubにテンプレートリポジトリという機能があるのをご存知でしょうか。 2019年の6月に発表された機能で、その名の通りテンプレート用のリポジトリを作成できる機能です。 テンプレートリポジトリを選択してリポジトリを作成すると、テンプレートリポジトリ内のファイルがコピーされた状態でリポジトリが作成されます。 リポジトリのForkと少し似ていますが、以下の点でForkとは違います。 コミット履歴が引き継がれない 自分で作ったテンプレートリポジトリを自分で利用することができる

ブログメトリクスの可視化Webページの技術要素

現在、ブログメンタリングを受けていて、毎週1記事を目標にブログを投稿しています。 ブログメンタリングについては以下の記事を参照してみてください。 メンタリング期間中は毎週メトリクスを確認するように言われていますが、メンタリング開始から数週間たった後に「Web上でメトリクスを可視化できたらいいかも」と思い立ち、メトリクス可視化Webページを作りました。 Webページの画像は以下です。 今もこのWebページを運用していますが、URL一つでブログのメトリクスを参照できるのは結構いいです。 今回はこのWebページの技術要素について書いていきたいと思います。

[ESLint] eslint-plugin-importを利用して自動でimportをアルファベット順にソートする

以前までTypeScriptの開発ではTSLintを使っていましたが、TSLintの開発が縮小されていくということもあり、最近はESLintを利用しています。 TSLintにはimportがアルファベット順に並んでいないと警告を出してくれるorderd-importsというルールがあります。autofixもサポートされており、VSCodeのTSLint拡張を使うと保存時に自動でアルファベット順にソートしてくれていました。 ただ、ESLintに移行するとこれに代替する機能が標準ではありませんでした。

TypeScript 3.7から利用できるOptional Chainingについて

半年ほと前にTypeScript 3.7がリリースされ、Optional Chainingが利用できるようになりました。 ここ最近で仕事でもよく利用しており、とても便利なので紹介したいと思います。nullチェック、undefinedチェック TypeScriptのコードを書いていると、nullチェック、undefinedチェックをするコードはたびたび頻出します。 例えば以下のようなFooという型があったとします。 以下のFooという型はオプショナルなbarというプロパティがあり、barの中にはオプショナルなbazというプロパティがあるとします。

NODE_ENV=productionにしてyarn install(npm install)するとdevDependenciesがインストールされない

この仕様を忘れていて、幾度となく時間を浪費してきたので備忘録としてブログにしておきます。 NODE_ENV=productionにしてyarn install(npm install)するとdevDependenciesがインストールされません。 NDDE_ENVを利用してAPIのリクエスト先を変えたり、DBのアクセス先を変えたりすることは多いと思います。 例えば、NODE_ENV=testの時はtest環境のAPIにアクセスし、NODE_ENV=productionの時はproductionのAPIにアクセスするというような設定です。

TerraformでAKSにKubernetesクラスタを構築する

前回はTerraformでAzureリソースを作成するための準備の記事を書きましたが、今回は実際にTerraformでAzureリソースを作成してみました。 TerraformでAzureリソースを作成するときの前準備(Service PrincipalとStorage Account) 今回は以下のチュートリアルをやってみました。チュートリアル:Terraform を使用して Azure Kubernetes Service で Kubernetes クラスターを作成する Terraformを使ってAzureのKubernetesサービスであるAzure Kubernetes Service(AKS)のリソースを作成します。 初期設定 まずはAzureリソースを作成するためにAzureプロバイダーの設定です。

TerraformでAzureリソースを作成するときの前準備(Service PrincipalとStorage Account)

TerraformでAzureリソースを作成するチュートリアルをやっていて以外と準備に時間がかかったのでメモしていきます。 「チュートリアルやってみた」の記事はまた、次回書きます。サービスプリンシパルを作る TerraformからAzureリソースを作成する際の認証についてです。いくつか認証の方法はありますが、今回はサービスプリンシパルで認証する方法について書きます。

GitHub Integrationを利用して、Next.jsアプリケーションをZeit Nowにデプロイしてみる

Zeit Nowが無料かつデプロイが簡単で良いという情報をみて、 試してみたくなったので実際にデプロイしてみました。Zeit Nowについて Zeit Nowのイントロダクションのページには以下のように書いてありました。 > ZEIT Now is a cloud platform for static sites and Serverless Functions that fits perfectly with your workflow.

HugoでOGPの設定をする

Open Graph protocolとはTwitter,FacebookなどのSNSにURLを載せたときに、サイト名や記事のタイトル、サムネイル画像、説明などが、カードの形で表示されるというものです。 以下は自分のブログをTwitterにあげた時の画像です。 OGPに対応することで、記事の概要が把握できるようになりクリック率の増加にもつながるのではないでしょうか。 サイトをOGPに対応させるには以下のメタタグを書くことが必要です。