- 投稿日:
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;
}
}
- 投稿日:
$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'
- 投稿日:
シェルスクリプトでオプションパラメーターを解析するやつ
基本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
- 投稿日:
pull_request
イベントの公式リファレンスが手薄くイベントの意味を明示してないので動きを実際に確認したものをメモ程度に。基本は意味のままだと思いますが…
opened: PRが開いたとき
reopened: PRが開き直されたとき
synchronize: PRに対してPushが走ったとき
- 公式リファレンス
特定ブランチから特定ブランチへのPRを阻止する
- サンプルで作っただけなので中身は適当
pull_request
はbranches
を先頭に書かないと、指定ブランチ以外でも走るので注意
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"
- 投稿日:
シェルスクリプトが設置されているパスを取得する
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