The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

使用 NVM (Node Version Manager) 管理多個不同版本的 Node.js 執行環境

我們在 Angular 官網的 Version compatibility 頁面可以看到不同版本的 Angular 其實有匹配的 Node.js 版本,太新的 Node.js 不能用,太舊也不能用。不過,我們通常在開發 Angular 一段時間後,多少都會面臨到需要維護不同專案採用不同 Angular 版本的狀況,這時候你就會需要管理多個不同版本的 Node.js 執行環境,這時候就可以考慮使用 NVM 來管理多個不同的 Node.js 版本。

... 繼續閱讀 ...

前端工程研究:如何將鍵盤焦點設定在一個無法 focus 的 DIV 元素上

在我們公司所有的專案都在 Azure DevOps Services 上面管理,從專案管理、原始碼版控、CI/CD、文件管理、測試管理、專案報表等等,都在 Azure DevOps Services 上面,所以我們的團隊成員每天都會花很多時間在 Azure DevOps Services 上面協作。雖然 Azure DevOps Services 也提供了很多鍵盤快速鍵,讓使用者可以更快速的操作,但還是沒辦法滿足我們的需求,所以這個假日我就打算在寫一個 Side Project 擴充更多鍵盤快速鍵。原本以為一個小時內可以完成的,結果卻卡關在一個不起眼的功能上,那就是 DIV 元素無法被 focus 的問題,這會導致你將無法透過鍵盤的「空白鍵」來捲動頁面,我為了提升這個小小的 UX 問題,花了好幾個小時才找到答案,這篇文章就來跟大家分享一下我研究出來的解法。

... 繼續閱讀 ...

如何利用瀏覽器原生的 Clipboard API 讀寫使用者的剪貼簿資料

我們有時候會在一些網站看到「複製到剪貼簿」功能,它不但可以複製我們肉眼看見的文字,還能複製完整的格式讓你可以貼到 Teams 或 Word 之中,有時還能複製完全客製化的內容,其實這背後都是透過瀏覽器內建的 Clipboard API 達成的。今天這篇文章我就來梳理一下 Clipboard API 的一些用法與地雷。

... 繼續閱讀 ...

透過瀏覽器瀏覽網站時到底 URL 長度有沒有一定的限制

我們一般在規劃設計一個網站時,通常都不會特別考慮一個網頁的 URL 到底會有甚麼上限,因為一個正常人絕不會把網址設計的很長很長,對吧?但有時候我們希望把一些網頁的狀態保存在網址列上,方便用戶將網址加入書籤,下次回來時就可以看到原本的資料,這時就有可能會讓網址變的很長。這個問題每隔一段時間就會有學員提出,今天我想透過這篇文章跟大家說說這個 URL 的長度限制。

... 繼續閱讀 ...

開發與部署網站時需注意不要使用到 ERR_UNSAFE_PORT 不安全的埠號

我昨天在授課的時候,突然遇到 Chrome 瀏覽器無法瀏覽網站的情況(ERR_UNSAFE_PORT),我踩到一個不知道算不算罕見的地雷,在深入瞭解之後,覺得有必要寫成文章提醒大家,因為你還真的很有可能會在不久的將來遇到這個問題,看完文章才不會讓你日後鬼打牆太久,讓我們繼續看下去。

... 繼續閱讀 ...

設定 Angular 專案使用 husky 簡化 Git hooks 設定並用 Prettier 統一風格

我們在團隊中開發 Angular 應用程式,經常需要同步每個成員的程式碼格式,與其訂定 Coding Style (代碼風格),倒不如直接用工具強制所有成員用一致的風格進行程式碼排版。本篇文章我將示範用 husky 搭配 prettier 來設定 Git 的 pre-commit hook,讓每個人在 git commit 之前就自動將變更的程式碼進行排版。

... 繼續閱讀 ...

前端工程研究:關於 JavaScript 的物件藍圖建立方法

我們都知道 JavaScript 物件建立的過程,大多都不需要事先設計「藍圖」就可以建立「物件」,不像 C#Java 等強型別語言,需要先設計「藍圖」(也就是類別),才能產生物件。在 ES2015 出來之前,並沒有 class 語法,而是使採用以原型為基礎的物件導向設計模式 (Prototype-based OO)。本篇文章將介紹幾種在 JavaScript 裡面建立物件藍圖的方式。

... 繼續閱讀 ...