mixpanel我可以通過創建此處boot描述的檔案來添加我的集成
import { boot } from 'quasar/wrappers';
import mixpanel from 'mixpanel-browser';
import useAppStore from '@/stores/app';
export default boot(({ store, app }) => {
if (import.meta.env.VITE_MIXPANEL_ENABLED === 'true') {
const { loggedUser } = useAppStore(store);
mixpanel.init(import.meta.env.VITE_MIXPANEL_KEY, {
debug: import.meta.env.VITE_MIXPANEL_DEBUG === 'true',
api_host: 'https://api-eu.mixpanel.com',
});
if (loggedUser) {
mixpanel.identify(loggedUser.username);
if (process.env.CLIENT) {
mixpanel.people.set({
firstName: loggedUser.firstName,
lastName: loggedUser.lastName,
city: loggedUser.city.name,
country: loggedUser.city.country.name,
});
}
}
app.provide('mixpanel', mixpanel);
}
});
問題是,如果用戶有廣告攔截器,我的整個應用程式就會崩潰。QSelect的和其他組件停止作業,因為廣告攔截器已阻止用戶獲取mixpanel資產。如何嘗試加載 mixpanel 并且如果用戶有廣告塊,它不會使整個應用程式崩潰?
uj5u.com熱心網友回復:
import問題與引導檔案本身的名稱無關。通過命名我的 bootfile mixpanel,我的 adblocker 完全阻止了檔案的加載,從而破壞了應用程式。
您只需要將檔案重命名為其他名稱,然后您應該可以直接使用引導檔案:
import { boot } from 'quasar/wrappers';
import useAppStore from '@/stores/app';
export default boot(async ({ store, app }) => {
if (!process.env.CLIENT) return;
try {
if (import.meta.env.VITE_MIXPANEL_ENABLED === 'true') {
const mixpanel = await import('mixpanel-browser');
// ...
app.provide('mixpanel', mixpanel);
}
} catch (e) {
console.log('Mixpanel is not able to load');
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/462418.html
