博客 / 列表

specialcoder - 一文讀懂 NPM 版本

這是前端工程化的系列文章 版本號組成 node package 版本號由四部分組成:major.minor.patch[-prerelease],比如:1.0.2-beta.1,其中 prerelease 可選。 major:代表主版本號,通常在需要提交不能向下兼容的情況下對該版本號進行升級 minor:代表次版本號,通常在新增功能時才對該版本號進行升級 patch:代表修復版本號,升級該

工程化 , npm , 前端

specialcoder - 認識包管理工具: npm、yarn和pnpm

包管理工具的發展 2010 年 1 月,一款名為 npm 的包管理器誕生。它確立了包管理器工作的核心原則。 npm 的發佈誕生了一場革命,在此之前,項目依賴項都是手動下載和管理的。npm 引入了文件和元數據字段,將依賴項列表存儲在 package.json 文件中,並且將下載的文件保存到 node_modules 文件夾中。 後來因為 npm 的缺陷或者舊版本的不足,又出現了一個個替代

工程化 , npm , 前端

specialcoder - NPM package.json 中 browser,module,main

參考:https://github.com/SunshowerC/blog/issues/8 browser VS module VS main 我們經常見到 package.json 裏有這樣一段內容: { ... main: dist/index module: dist/index.esm.js browser: dist/zhihu-hybrid.umd.js } 當我們在不

打包 , 模塊化 , 工程化 , npm

specialcoder - JavaScript 模塊化機制

參考: https://zhuanlan.zhihu.com/p/337796076 JavaScript 模塊化機制概覽 JavaScript 常見的模塊化機制主要有以下三種: AMD (Asynchronous Module Definition): 在瀏覽器中使用,並用 define 函數定義模塊; CJS (CommonJS): 在 NodeJS 中使用,用 require 和 mo

模塊化 , 工程化

specialcoder - URL參數的格式化和解析

常見場景 傳遞 URL 參數是頁面A與頁面B通信時常用的方法。如:頁面A是新聞列表頁面,在點擊某一條新聞的時候,需要帶着新聞 ID 打開頁面B新聞詳情頁面 pageB?id=${id},這樣頁面B就能根據解析 URL 上的 ID 獲取具體的新聞詳情了。 常見的格式化和解析方法 🔥🔥🔥 推薦一個好用的解析工具:Prettier URL 給出一段參數: const query = { a

Javascript , url

specialcoder - 字符編碼系列: base64

所有字符均可打印的編碼方式 基本介紹 「Base64」 是一種基於 64 個可打印字符來表示二進制數據的表示方法。由於 「2⁶ = 64」 ,所以每 6 個比特為一個單元,對應某個可打印字符。(回顧一下,我們之前介紹的 ASCII/Unicode 編碼裏都有不可打印字符) 體驗效果請戳這裏 👉:Base64 編碼/解碼 Base64 相應的索引表如下(這與 ASCII/Unicode 完全

base64 , Javascript

specialcoder - 字符編碼系列: ASCII、UTF-8 和 Unicode

準備 二進制換算 1 G = 1024 M = 1024 1024 K = 1024 * 1024 * 1024 Byte 1 Byte = 8 bit 一、ASCII 碼 只佔用一個字節表示的編碼 我們知道,計算機內部,所有信息最終都是一個二進制值。每一個二進制位(bit)有 0 和 1 兩種狀態,因此八個二進制位就可以組合出256種狀態,這被稱為一個字節(byte)。也就是説,一個字節一

utf-8 , ascii碼 , unicode , Javascript

specialcoder - 前端截圖實現

前言 需求背景: 目標:將頁面內容變成圖片分享出去 持久化:不需要服務端存儲 客户端能力:不依賴客户端端能力 使用pupeteer做截圖服務 優點: 前端使用簡單,只需調用接口即可 分享頁面可以和給用户展示的頁面內容分離,不用額外處理樣式等問題 缺點: 新開服務維護服務 接口響應時間較長會影響體驗 結論 調研發現,可以使用html2canvas純前端做頁面轉化成圖片的功能

html2canvas , html5 , Web