Vite 使用 ionicons
2022年8月22日
Vite 使用 ionicons
在 ionicons 的官方文档中,对于不使用ionic框架的情况,建议使用cdn的方式引入。
第二行是为了兼容不支持module的浏览器,不考虑兼容的话不用加
<script type="module" src="https://cdnjs.cloudflare.com/ajax/libs/ionicons/6.0.2/ionicons/ionicons.esm.min.js"></script>
<script nomodule src="https://cdnjs.cloudflare.com/ajax/libs/ionicons/6.0.2/ionicons.min.js"></script>
对于 vite 项目,cdn的引入自然是要放在./index.html
中。
然后就可以使用:
<ion-icon name="logo-ionic"></ion-icon>
现在图标可以正常显示了。但是如果你打开调试工具,会发现如下报错:
[Vue warn]: Failed to resolve component: ion-icon
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.
at <ParentCompoent>
at <App>
这是因为 vue 无法解析ion-icon
这个组件。其实提示也给出解决方案了,要配置compilerOptions.isCustomElement
。
在 vite ^2.9.x中,compilerOptions.isCustomElement
要这么配:
在vite.config.ts
中
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [
vue({
template: {
compilerOptions: {
isCustomElement: tag => tag.startsWith('ion-')
}
}
}),
],
})