お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。

Next.js 11から12にしたらHMRが死んだので復活させるための設定を書いておく

確認環境

Env Ver
nginx Windows-1.21.4
Next.js 12.0.4

設定例

標準状態でnpx nextを叩いた状態を想定している

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen       80;

    location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass  http://localhost:3000;
    }
}
はてブ数
投稿日:
言語::PHP
$arr = ['a', 'b', 'c'];
$test1 = '';
$test2 = '';
$test3 = '';
for($idx = 0; count($arr) > $idx; $idx++) {
	${'test' . ($idx + 1)} = $arr[$idx];
	// $this->{'test' . ($idx + 1)} = $arr[$idx];とするとクラスのプロパティも行ける
}
// $test1 = 'a'
// $test2 = 'b'
// $test3 = 'c'
はてブ数
投稿日:
OS::Linux::コマンド

シェルスクリプトでオプションパラメーターを解析するやつ
基本shiftと合わせて使う

サンプルコード

とりあえず最低限の動作サンプル的なやつ

#!/bin/bash

usage_exit () {
    echo "Usage: $0 [-p piyo] [-f] <foo> <bar>"
    exit 1
}

# オプション名の後ろに `:` をつけるとパラメーターを取れる、つけないと取れない
# オプション先頭に `:` をつけるとエラーハンドリングを自動でしなくなる
#  e.g. `getopts :p:fh`
while getopts p:fh OPT
do
    case $OPT in
            p) piyo=$OPTARG
            ;;
            f) fuga=1
            ;;
            h) usage_exit
            ;;
            \?) usage_exit
            ;;
    esac
done

# オプション分の引数をずらす
# これがないとオプションが `$1` とかに入ってくる
shift $((OPTIND - 1))

# オプションを抜いた引数を取る
foo=$1
bar=$2

echo $foo
echo $bar
echo $piyo
echo $fuga
はてブ数
投稿日:
開発::自動化サービス::GitHub::GitHub Actions

pull_requestイベントの公式リファレンスが手薄くイベントの意味を明示してないので動きを実際に確認したものをメモ程度に。基本は意味のままだと思いますが…

opened: PRが開いたとき
reopened: PRが開き直されたとき
synchronize: PRに対してPushが走ったとき

特定ブランチから特定ブランチへのPRを阻止する

  • サンプルで作っただけなので中身は適当
    • pull_requestbranchesを先頭に書かないと、指定ブランチ以外でも走るので注意
name: testing on opend PR to main
on:
  pull_request:
    branches:
      - main
    types:
      - opened
      - reopened
      - synchronize
jobs:
  # 事前ブランチチェック
  before-check:
    runs-on: ubuntu-latest
    steps:
      - name: fail case
        if: startsWith(github.head_ref, 'test/') && github.base_ref == 'main'
        # test/* ブランチから main ブランチ宛である場合
        # exit 1で終了することで Workflow を failure 扱いにする
        # https://docs.github.com/ja/actions/creating-actions/setting-exit-codes-for-actions
        run: exit 1
        # 前の if に入らなければ、そのまま次のジョブにつながる
  after-exec:
    # 指定されたジョブの成功を要求、失敗している場合、このジョブを実行しない
    # 必然的に線形実行になる(並列では走らない)
    needs: [before-check]
    runs-on: ubuntu-latest
    steps:
      - name: TEST!
        run: echo "RUN after-exec"
はてブ数
投稿日:
OS::Linux::コマンドソフトウェア::Bash

シェルスクリプトが設置されているパスを取得する

  • cwd=$(cd $(dirname $0); pwd)
    • $0はシェルスクリプトのフルパス
    • dirnameでスラッシュから始まるファイル名を除去
    • cdで移動
    • pwdで表示

現在のパスを移動せずにシェルスクリプト内でパスを移動する

これはサブシェルを使うと出来る
サブシェルとは()で囲まれた部分で、この中では別のシェルが動いている
例えば次のスクリプトはfoo/に移動し中のファイルリストを表示するが、2行目では現在の位置にあるファイルリストを表示するため移動していない
コマンド展開記法$()もサブシェルが動いている

(cd foo/; ls -la)
ls -la

複数コマンドをワンライナーで実行する

;

  • 以下のように書くと連続で線形実行される。手前が異常終了しても続く
    • curl; echo 2;

&

コマンドの末尾に&をつけるとバックグラウンドで実行される

  • 以下の例では左がバックグラウンド、右がフォアグラウンドで実行される
    • echo 1 & echo 2

&&

AndAlso的な動きをする

  • 以下のように書くと連続で線形実行される。手前が異常終了すると続かない
    • curl && echo 2

|

コマンドの末尾に|をつけると標準出力が次にリダイレクトされる

  • 以下のように書くと連続で線形実行される。手前の標準出力が次にリダイレクトされる
    • echo 1 | xargs -I{} echo {}2

||

OrElse的な動きをする

  • 以下のように書くと連続で線形実行される。手前が異常終了した場合のみ次が動く
    • curl || echo 1