みかづきブログ・カスタム

基本的にはちょちょいのほいです。

.htaccessを使ってApacheにBasic認証をかける(さくらのレンタルサーバなど) 🔐

blog.kimizuka.org やら Netlify やら Firebase Hosting + Cloud Functions にBasic認証をかけることはあったのですが、単純なApacheにBasic認証を掛けたことがなかったので調べました。 ❶ Basic認証をかけるディレクトリのパスを調べる PHPが動く環境だった…

Nuxt.js(v15.0)からコンポーネントの自動インポートのルールが変わった模様 ✌️

久しぶりにNuxt.jsでプロジェクトを作成したところ、コンポーネントの自動インポート周りでエラーが起こりました。 結論 結論を先に書くと、Nuxt.js(v15.0)からnuxt/componentsがv2に切り替わったことと、僕がAtomic Designのルールにのっとり、components…

Nuxt.js + sass-loader(12.1.0)でエラー(TypeError: this.getOptions is not a function)が出るのを解決する 🚨

久しぶりにNuxt.jsでプロジェクトを作成したところ、sass-loaderがエラーを吐きました。 ERROR Failed to compile with 1 errors friendly-errors 22:25:18 ERROR in ./components/App.vue?vue&type=style&index=0&id=5fa207fa&lang=scss&scoped=true&Module…

Three.js + AR.js でWebARを作るときはバージョンを固定しておくべし 📷

久しぶりにWebARを実装する機会があり、自分の記事を読み返していたのですが、いつの間にか動かなくなっていました。。blog.kimizuka.org「何もしてないのに壊れた!」と思ったりしましたが、検証してみた結果、 <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/master/three.js"></script> <script src="https://cdn.rawgit.com/mrdoob/three.js/master/examples/js/loaders/GLTFLoader.js">

clip-pathでDOMにマスクを掛けつつdrop-shadowで影を落とす 😷

CSS

developer.mozilla.org最近、clip-pathを使い、DOMにクリッピングマスクを掛けることが多いのですが、クリップしたDOMにbox-shadowで影を落とそうとすると上手く行きませんでした。 影が落ちない例 div { width: 200px; height: 100%; background: #fff; cli…

Three.jsでシーンからmeshをremoveするときは、ジオメトリとマテリアルをdisposeする 📦

threejs.org最近、ドキュメント に、 シーンからメッシュを削除すると、そのジオメトリとマテリアルも破棄されますか? いいえ、dispose()を使用してジオメトリとマテリアルを明示的に破棄する必要があります。ジオメトリとマテリアルはメッシュなどの3Dオブ…

VercelにホスティングしたウェブサイトにBasic認証を設定する 🔐

vercel.comVercelにBasic認証をかけることに成功したので手順をメモしておきます。 ❶ ホスティングしたいファイルをpublicディレクトリに入れる ❷ プロジェクトルートにapp.jsをつくる app.js const protect = require('static-auth'); const safeCompare = …

Next.jsでページ遷移時のコールバックイベントを設定する 📖

nextjs.orggithub.comすべては上記のドキュメントとサンプル通りなのですが、useRouterとrouter.eventsを使えば、ページ遷移時にコールバックイベントを設定することができます。 import { useRouter } from 'next/router'; export default function Page() …

Next.jsでnext/linkを使ってハッシュを変更した時にhashchangeが発火しない 🔥

<Link href="#hash"> hashchange </Link> というリンクをクリックしてhashを変化させた時、 window.addEventListener('hashchange', () => { console.log('hashchange!'); }); と、設定したハッシュチェンジイベントが発火せずにとても困っていました。※ next 10.1.3にて確認手っ取り早…

Next.jsでSVGをコンポーネントのように扱う ✌️

Nuxtでいうところの、nuxt-svg-loaderのようなパッケージを探していたのですが、公式のサンプルを参考に、babel-plugin-inline-react-svgを使うことにしました。github.com github.comNext.jsの設定、TypeScriptの設定をメモしておきます。 パッケージのイン…

Next.jsに公式ツイートボタンを埋め込み、ページ遷移の度に初期化する 🐦

useEffect で window.twttr.widgets.load を実行すればOKです。 declare global { interface Window { twttr: any } } export default function BtnTweet() { useEffect(() => { window!.twttr!.widgets!.load(); }, []); return ( <p className="btn-tweet"> </p>

JavaScriptで日本語を五十音順にソートする 🇯🇵

String.prototype.localeCompare という非常に便利なメソッドを発見しました。引数に'ja'を渡しつつ、Array.prototype.sortと組み合わせることで、日本語を五十音順にソートすることができるようです。developer.mozilla.org [ 'オギノ', 'マーティン', 'ナ…