NuxtMeetUp#7
https://gyazo.com/8bbb551b7f2e38a8c1ef843782690a90
https://nuxt-meetup.connpass.com/event/118040/
https://www.youtube.com/watch?v=dqobTRjSnNo
はじめに
株式会社SCOUTER
@show06
back check
SCOUTERが月額制リファレンスチェックサービス「back check」β版の事前登録を開始
Nuxt.js 使用アンケート 142/178人
スポンサーLT
note株式会社
@konpyu
CTO
12月に外苑前に引っ越した
メディアプラットフォームnoteを運営
MAU1000万&会員100万突破
技術系の記事はぜひnoteで
noteのフロントエンドをNuxt.jsへ刷新します|こんぴゅ|note
/r始まりのときはNuxt.jsでSSRで
強制ドッグフーディング
圧倒的に早い
コンテスト募集一覧ページを今週Nuxt版で正式公開
レガシーブラウザと向き合うNuxt.js
https://slides.com/kengooowaki/nuxt-js/
@kengotoiro
面白法人カヤック
ゲーム情報・攻略・コミュニティの【Lobi】
ゲーマーの情報交換や交流を楽しむコミュニティサービス
Web, iOS, Androidがある
Web版をAngular 1.4 => Nuxt.jsに刷新
パフォーマンス改善面は良好
レガシーブラウザへの配慮
IE11サポートしている
全体流入の2%
レンタルPC、漫画喫茶などでゲームする人もいる
どこまでの対応が必要?
辛かったこと
Nuxtが1系→2系の移行期だった
ドキュメントがまだ1系だった
build時のプラグイン周りが結構変わっていた
反省点
最新のドキュメントを意識する
リリースノートを見る
どんなプラグインが走っているのか知っておく
build時にどんなプラグインが使われているのか
CSSについて
postcss-preset-env
autoprefixer, Stage 2 fetuaresがついている
対象ブラウザの範囲を設定する場合
browserlistをつける
code:package.json
"browserlist": [
"last 2 versions",
"ie 11"
]
Grid Layoutなどは別途nuxt.config.jsに設定
code:nuxt.config.js
build: {
postcss: {
plugins: {
'post-css-preset-env' : {
autoprefixer: { grid: true }
}
}
}
}
機能拡張する際はどうすれば良いか
@babel/preset-env
polyfillが別途必要
新しい機能をレガシーブラウザで動くように変換
https://polyfill.io/
configのheadに追記するだけ
code:nuxt.config.js
head: {
script: [
{
src: 'https://polyfill.io/v3/polyfill.min.js?features=IntersectionObserver'
}
]
}
Nuxtの仕様変更に消耗しない
ブラウザ毎に差分のPolyfillを返してくれる(必要な分だけ返せる)
yamanoku.icon Intersection ObserverについてはSafariでは2019/02より使えるようになった
Safari 12.1 Release Notes | Apple Developer Documentation
IntersectionObserver in WebKit | WebKit
Nuxtを中心とした開発エコシステムによる個人開発のすすめ
金井淳
七洋株式会社
https://github.com/junkanai1020
悩み
フロントエンド開発設計で苦戦
サーバーサイド・インフラ構築知識がない
SPAだがSNSマーケティングもしたい
将来ネイティブアプリ展開もしていきたい
解決 => Nuxt.js
イントロダクション
個人開発に挑戦したいと考える人の足がかりになればいい
受託中心なので、個人開発でスキルアップをはかりたい
料理が趣味なのでその分野で楽しく開発に望みたい
個人開発プロダクト
small dish
https://smalldish.jp
β版(アクセス制限)
料理初心者、ひとり暮らし、ミニマリスト向け
コンテンツ
料理の献立、アイデア、ショッピング
開発トピックス解説
使用技術一覧
Nuxt.js
Firebase
Contentful
Google App Engine
CircleCI
Sentry
Bootstrap
Sass
SSR
Vuex Store
献立
アイデア
ショッピング
分類
ユーザーお気に入り
いいね
コメント
ビュー
機能
ソーシャルログイン
Firebase Authentication
お気に入り
FireStore
Contentful Model・Fieldsと永続化データで実装
いいね
FireStore
カウント数の増減あり
コメント
Realtime Database
参考になったアクションあり
ログイン済みのユーザーのみ
SNSシェア
Twitter,Facebook
お問い合わせ
Cloud Funtions
Contentful Model・Fieldsでコンテンツ管理
詳細画面の画像、テキスト、配列、関連付けなどのフィールドを用意
Summary
スピーディー開発
Firebaseにすべておまかせ
Google App EngineにてSSR実現できるので
クライアントとサーバーサイドは再利用可能なAPIによる通信なのでネイティブにも活かせる
まとめ
Nuxt.jsはWebサービス個人開発を加速させる
Catch up Nuxt.js 2019.02
https://speakerdeck.com/andoshin11/catch-up-nuxt-dot-js-2019-dot-02
@andoshin11
フリーランス
Vue.js Japan User Group
ブログ記事:阿部寛を超えるための技術: はてなブログからNuxtに移行した話 | Studio Andy
2.4リリース
Nuxt.js v2.4.0 is out! TypeScript, Smart prefetching and more... - DEV Community 👩‍💻👨‍💻
プルリクエストが100クローズしている(1/28現在)
リリースプランをアップデートする
メジャーアップデートは半年に1回
マイナーバージョンアップは4週間に1回のペース
nuxt-edge
https://www.npmjs.com/package/nuxt-edge
24時間に1回リリースバッチが回っている最新版
最近追加された機能(リベースの可能性あり)
Universal fetch対応
ビルトインにnode-fetch, fetch polyfill
Top level async/await
nuxt.configにPromise がはいってる
.nuxtignoreサポート
nuxtにスキャンされたくないファイルを指定
Tons of tons of Unit Tests
気軽に動作確認できるようになった
TypeScriptサポートの充実
kevin marrecが開発
nuxt-tsが使えるように(テスト機能)
ts, tsxがサポートされるように
ts-loaderが設定されるように
該当フォルダに置いておくと自動的にコンパイルしてくれる
useForkTsChecker
型定義が邪魔せず高速ビルド
Nuxt公式のContext Typeが提供
Pages API Typeもサポート
WIP
feat(ts): nuxt configuration typedefs by kevinmarrec · Pull Request #4854 · nuxt/nuxt.js
chore(examples): Add tsx example by andoshin11 · Pull Request #4855 · nuxt/nuxt.js
Vue.js 2.6
What’s New Or Just Review Of Vue.JS 2.6 – Alex Maison – Medium
nuxt-edgeでは既にVue 2.6を使っている
追加された機能がnuxt-edgeにマージされていってるらしい
rfcs開設
Vueに倣った
GitHub.icon https://github.com/nuxt/rfcs
新規機能についてはここで話し合われている
Nuxt UIやCLIでのモジュール管理ができるように?
Re:ゼロからはじめるNuxt生活〜Nuxt.jsでWebサイトをリニューアルしている話
https://speakerdeck.com/xkxaxkx/re-zerokarashi-merunuxtsheng-huo
@xKxAxKx
nana music株式会社
得意分野:サーバサイド(Python/Django)
リニューアルの経緯
nana スマホでつながる音楽コラボアプリ
問題点
データ取得にDBに直接接続している
SEOが貧弱
Python2を使っている
小学生に煽られる
https://twitter.com/monotarosamurai/status/778846894575357952
なぜNuxt.jsを選んだか
Nuxt採用は初ではない
とある企画用に構築することになった
トライアル的に作った
SSRを簡単にしたい
開発を進めていたところ企画がポシャった
そういう意味で「Re:ゼロ」からはじめる
スキルセット
xKxAxKx
サーバサイド
JSは雰囲気でかける
サーバサイドとの開発と兼務
エンジニアY
フロントエンド
Vue.jsとNuxt.jsを扱ったことあり
Vueコミュニティメンバー
選定基準
教育コストが低い
SSR
TypeScriptが使える
Webアプリケーションとして拡張しやすい
ネイティブアプリと同等のことをするかも
状態管理が重要になるのでそのデータフローが用意されていてほしい
構成(予定)
Nuxt.js
express
Django
Contentful
MySQL
TypeScriptの導入について
typescript-templateはつかわない
更新が止まっている
型定義やtsconfigが不十分
Vuexが良い
導入が楽
create-nuxt-app
Fluxライクでのデータの流れが一方通行で便利
現時点で相性がよくない
型any地獄
特にactionの可読性が著しく悪くなった
Vuexによる状態管理を含む最高に快適な Vue.js + TypeScript の開発環境を目指す話 - Qiita
全面的な導入は今回は見送り
将来的には対応したい
モジュール処理を細分化
TS移行時に少しずつ対応するため
componentのvue内部はTSに移行できそう
Vuexの内部に関してstateを定義していきたい
Web猫ブログで問い合わせにFirestoreを採用した話
https://master.d15419h4sw4nyx.amplifyapp.com/
@jiyuujinlab
にゃんこスタジオに3年在籍
2/1より株式会社SCOUTERでリモート勤務
Sardineの仕事
ブログ:Web猫ブログ
にゃんこ大戦争
Angular => Vue.jsに刷新
i18n対応
「地下鉄に乗るっ」×「にゃんこ大戦争」 地下鉄娘×にゃんこ大戦争×Hello KYOTO コラボスタンプラリー
きっかけ
管理画面に使用したかったが頓挫
興味本位でブログに触ってみた
構成
Nuxt.js
Contentful
Firebase
Netlify
AdminとBlogがそれぞれNuxt使用
なぜ NuxtとFireStoreなのか
サーバーサイド強くなくてもよい
規約面がしっかりしている、ルーティング周り、豊富なドキュメント
去年秋にブログ開設してから急いでいた
FBがほしかった
コメント機能
管理の仕方
Componentで管理
Vuexを使用しなかった
全体で共有する必要がなかったから
影響範囲もそれほど大きくなかったから
近いうちにそれぞれの記事に紐付けるようにして閲覧できるようにしたい
テーブル設計はミニマム・シンプルに
タイトルと詳細は必須、アドレスは必須ではない
カテゴリは必須、ただし記事内では入力不要
裏で送信日時もコレクションに入れるように設定
クライアント側でバリデーションチェック
適時sweetalert2でダイアログを出して警告
セキュリティルールは最低限の実装のみ
isAuth() { return request.auth != null; }
適時readとwrireを切り分ける
ソースコード
GitHub.icon https://github.com/jiyuujin/webneko-blog
GitHub.icon https://github.com/jiyuujin/nuxt-admin-server
Nuxt.js +Tailwind CSS is 天 the 才
https://slides.com/masaakikunsan/deck#/
@masaakikunsan
FABRIC TOKYO 業務委託
技術構成
Jamstack
Contentful
Netlifyでweb hooks
GitHubでAuto Depoly
Nuxtで爆速開発
Tailwind CSS
https://tailwindcss.com/docs/what-is-tailwind/
採用理由
UIフレームワークにこだわったときの変更はしんどい
class名考えるのがしんどい
classを見て何をしているかがわかりやすいのがいい
セットアップ
Use a custom UI frameworkのときにTailwindを選択するだけ
tailwind.jsに変数設定がある
使い方
基本的にTailwindに任せる
汎用的に使えない自作でつくるとよい
jsonに詳細ページの内容をassets配下に置いてyarn generateで静的出力
https://gyazo.com/7f72f737347613bc7e5f968841bffd31