ゆずめも

メモ的なブログです。主に勉強した事について書いてます。

タイトルの横に線を引きたい

先に見本を示すとこういう事がしたかった

See the Pen タイトルの横に線を引く by yuzu (@yuzu441) on CodePen.

参考にしたもの

beatdjam.hatenablog.com

やりたかったこととの差

参考にさせていただいた例では左右に線を引いて文字を真ん中に持ってきていて、左右どちらかの線が無い場合、文字サイズ分を引いた残りの部分全てに線を引いてしまいます

やりたかったこととしては左右両方ではなく、片方に特定の長さ線を引きたかった

やったこと

flex-growプロパティを使って長さを調節していたので、それを普通のwidthにして長さを指定することで期待したものができました

長さを変更したい場合はwidthの設定を変更すると長さを変更できます

数年振りにcssについて調べてsassを書いてみた

久しぶりにWebページを作る仕事が来て js関連は調べてるけど、css関連は全く知らないのでcss周りについてちょっと調べた

情報収集

とりあえずパイが多いやつってなんなんだろうと思って調べた

ashleynolan.co.uk

PostCSSはなんかbabel的なやつでしょという理解はあったけどSass, Lessは全くわからなくてtwitterで聞いたら教えてもらえた

教えてもらったしsass使ってみることにしました

sassについて

なんでsass(scss)って書かれてるのかと思ったら記法が2つあるみたいで

インデントでブロックを表すもの(Sass)と、cssのように{}でブロックを表すもの(Scss)がある

sassを使ってみる

(sassというか書いてるのscssですが) そもそもはsassはrubyで動かすツールみたいですが、フロントエンドなんだからNode.js使いたいですね

というわけでnode-sassを使うことにしました

www.npmjs.com

インストール

適当にプロジェクトのディレクトリを作ってnpmからツールを取ってくる

yarn add -D node-sass

使ってみる

scssはセレクタ入れ子にできるみたい

// src/style.scss
div {
  color: red;
  p {
    color: blue;
  }
}

これをnpx node-sass src/style.scss dist/style.cssコンパイルすると下みたいな感じになるらしい

/* dist/style.css */
div {
  color: red; }
  div p {
    color: blue; }

アウトプット見るとclassを入れ子にしていくことでnamespaceっぽいことができるイメージなんだろうな

まとめ

とりあえず動かせることはできた
sassを使うことで入れ子にしたり、変数使ったり、forでコード生成したりもできるらしい

最初に貼ったsurvey見ても、結構生css使ってる人とか多いっぽいしbemで書けばなんとかなるなと考えている

なのでもうちょっと触ってみてプロジェクトに導入するかどうかを決めようと思ってる

もしこれ読んだらSassの素晴らしさがわかるみたいなのあれば教えていただけると嬉しいです

dockerでフロントの開発環境を作ろうとした話

こんにちは、ソウルジェムが日々濁っているゆずです

タイトル通り今回は開発環境をdocker化しようとした話なんだけど結果的に実現できず妥協したので、いい方法知ってる人はtwitterなりで教えていただけると嬉しいです

tl;dr

  • ローカルでyarn installして、ビルド自体はdocker上でやるようにした
  • ローカルでyarn installしとかないとエディタが型解決したりできない
  • ビルドした成果物だけが欲しい時はdockerさえあれば成果物だけ取得できる

動機

本番は使わせてもらえなさそうなので、開発環境ならdocker化しても文句言われないしぼっちプロジェクトチームなのでバレないだろうと思いたち、とりあえず手元にあったフロントのプロジェクトをdocker化にチャレンジしてみた

実現したいこと

docker-compose up -dしたら開発に参加できる*1

やったこと

とりあえずdocker-compose.yml書く

既に1000000煎じくらいなので誰かがやってるだろと、検索したらこれだよみたいなの見つけた

qiita.com

これを参考にdocker-compose.yml書いた

version: "3"
services:
  build:
    image: node:10
    working_dir: /app
    restart: always
    command: yarn run watch:dev # yarn install && webpack -d -w
    volumes:
      - .:/app
      - node_modules:/app/node_modules
volumes:
  node_modules:
    driver: local

これでいいかーという感じだったが、これだとエディタ(例えばVSCodeとか)がimport解決できないし、git cloneした時にnode_modulesがdocker権限でできてしまいyarn installできなくなってしまう

結局

.gitkeepみたいなの置くのは嫌だったので、結局volumesにnode_modules以外のビルドに必要なファイルを個別で指定するようにした

version: "3"
services:
  build:
    image: node:10
    working_dir: /app
    restart: always
    command: yarn run watch:dev # yarn install && webpack -d -w
    volumes:
      - ./public:/app/public
      - ./src:/app/src
      - ./package.json:/app/package.json
      - ./tsconfig.json:/app/tsconfig.json
      - ./webpack.config.js:/app/webpack.config.js
      - ./yarn.lock:/app/yarn.lock
      - node_modules:/app/node_modules
volumes:
  node_modules:
    driver: local

基本的にはsrc以下が増えていくはずなので、volumesを変更することって無いだろうなということで、これで少しの間開発していこうと思ってる

これで一応docker-compose up -dとかして、手元でyarn installすれば開発できる*2

*1:結果的には妥協した

*2:この2度手間感なんとかしたい…