はい!今やってます!

Work Pertly, Live Idly

svelte, ts, tailwindアプリ環境を最速で作りたくなった時に叩くコマンド

  • command
npx degit sveltejs/template ${project_name}
yarn install
node scripts/setupTypeScript.js
yarn add svelte-check
yarn svelte-check
yarn add tailwindcss@latest postcss@latest autoprefixer@latest
yarn add svelte-preprocess
npx tailwindcss init
  • tailwind.config.js
const production = !process.env.ROLLUP_WATCH; // Add
module.exports = {
  // Add from here
  purge: {
    content: [
      './src/**/*.svelte',
      './src/**/*.html',
    ],
    enabled: production, // disable purge in dev
  },
  // Add to here
};
  • rollup.config.js
import sveltePreprocess from 'svelte-preprocess'; // Add

// 中略

export default {
  plugins: [
    svelte({
      // Add from here
      preprocess: sveltePreprocess({
        sourceMap: !production,
        postcss: {
          plugins: [
            require('tailwindcss'),
            require('autoprefixer'),
          ],
        },
      }),
      // Add to here
    
     // 中略
};
yarn run dev

awsコマンドのプロファイル関連コマンドをいつも忘れる

aws command

  • プロファイル一覧
aws configure list
  • 追加
aws configure --profile hoge
  • クレデンシャルの場所
~/.aws/credentials 
~/.aws/config

aws-valult

aws-vault exec ${profile_name} -- aws s3 ls
  • aws ログイン
aws-vault login ${profile_name}

direnv

  • direnv
direnv allow .

無名関数の中でdeferを呼んだ時の動作の検証

  • Code
package main

import (
    "fmt"
    "errors"
)

func main() {
    fmt.Println("---- main start ----")
    
    var err error
    defer func() {
        fmt.Println("---- main defer start ----")
        if err != nil {
            fmt.Println("--> err in main defer")
            fmt.Println(err)
            
        }
        fmt.Println("---- main defer end ----")
    }()
    
    anonymous := func() (err error) { 
    
        defer func() {
            fmt.Println("---- anonymous defer start ----")
            if err != nil {
                fmt.Println(err)
            }
            fmt.Println("---- anonymous defer end ----")
        }()
        
        fmt.Println("---- anonymous start ----")
        err = errors.New("anonymous error occured")
        return
        
    }
    err = noname()
    
    fmt.Println("---- main end ----")
}
  • Result
---- main start ----
---- anonymous start ----
---- anonymous defer start ----
anonymous error occured
---- anonymous defer end ----
---- main end ----
---- main defer start ----
--> err in main defer
anonymous error occured
---- main defer end ----