Element-plus 是基於 Vue3 的響應式框架,在 Laravel 中使用 Laravel Mix 實現 Element-plus 的樣式檔案的自動匯入,以此代替全域性引入的方式,降低 CSS 檔案的大小。
在專案根目錄下執行指令
npm install -D unplugin-vue-components unplugin-auto-import
如果你使用的是 Laravel Sail 環境,別忘記在命令前面加上
sail
字首
修改 Laravel 專案的根目錄 webpack.mix.js
const AutoImport = require('unplugin-auto-import/webpack')
const Components = require('unplugin-vue-components/webpack')
const {ElementPlusResolver} = require('unplugin-vue-components/resolvers')
mix.webpackConfig({
plugins: [
AutoImport({
resolvers: [ElementPlusResolver({
exclude: new RegExp(/^(?!.*loading-directive).*$/)
})],
}),
Components({
resolvers: [ElementPlusResolver()],
}),
]
});
注意到其中有一段程式碼
exclude: new RegExp(/^(?!.*loading-directive).*$/)
這是用來解決自動匯入後引發的 Cannot find module 'element-plus/es/components/loading-directive/style/css
錯誤,原理是透過正規表示式取消自動載入 loading-directive
樣式,錯誤的引發原因未知。
註釋掉原先引入所有樣式的程式碼,然後執行指令(如在配置前已經執行則需要終止後重新執行)
npm run watch-poll
你將發現你的應用仍然正常執行
How to include webpack plugins when using Laravel Mix? - Stack Overflow
vue3.x 專案使用element-plus 自動按需匯入 使用v-loading報錯 無法找到樣式
你也可以在我的個人部落格看到這篇文章:Laravel 中使用 Mix 配置 Element-plus 自動匯入 | microven’s blog
本作品採用《CC 協議》,轉載必須註明作者和本文連結