分類
標籤
.env AI Arc Arm Astro BigQuery btop Certbot Chrome CICD Cookie CORS CSS cURL DataTables defineExpose DevOps Docker Draggable Fetch API Gamania Git GitLab Google Calendar Google Cloud Summit Google Tag Manager GSAP HTML iCal inject JavaScript Laravel Less LINE Llama 3 Masonry Meta Nginx Nginx UI O(log n) Ollama OpenSSL Oracle OrbStack PHP Pinia Pixel Postman provide Proxyman Raycast requestAnimationFrame script setup Server Session Sitemap Socialite SSL TablePlus Termius Valet Vertex AI Visual Studio Code Vite Vue 3 Vue2 Vue3 Vuex Warp Webpack Yahoo Calendar Zeabur 二分搜尋 元件溝通 前端開發 動畫效果 峰值體驗 廣告 性能優化 打包 推薦系統 搜尋 時間複雜度 演算法 瀑布流排版 父子元件 環境變數 程式碼複製按鈕 系統監控 網站地圖 網頁開發 自動化部署 螢幕刷新率 語言模型 資訊檢索 跨域請求 轉化率 開發工具 陣列 電商 電子商務
224 字
1 分鐘
從 Webpack 到 Vite 的 Less 編譯問題
在 Vue 專案升級過程中,從 Vue2+Webpack 遷移到 Vue3+Vite 時,可能會遇到 Less 編譯錯誤的問題。 即使已安裝 Less 相關依賴並配置 vite.config.js
,錯誤仍可能出現。
首先,確保安裝了必要的依賴:
yarn add less less-loader
接著,在 vite.config.js
中進行如下配置:
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
export default defineConfig({
plugins: [vue()],
css: {
preprocessorOptions: {
less: {
// 在這裡添加你的 Less 配置
javascriptEnabled: true,
},
},
},
});
本次錯誤訊息如下:
[vite] Pre-transform error: [less] Error evaluating function `round`: argument must be a number
[vite] Internal server error: [less] Error evaluating function `round`: argument must be a number
這是因為 Less 在處理 round
函數時,傳入的參數並非數字。
為了解決此問題,可以在 vite.config.js
的 css.preprocessorOptions.less.lessOptions
中加入以下配置:
less: {
math: "always",
relativeUrls: true,
javascriptEnabled: true
},
透過這些配置,能順利編譯。
參考資料:
How to add a loader (less-loader) to vite.js (vite.config.js)?
從 Webpack 到 Vite 的 Less 編譯問題
https://laplusda.com/posts/from-webpack-to-vite-handling-less-compilation-errors/