Maison  >  Questions et réponses  >  le corps du texte

Le titre réécrit est : Comment puis-je accéder à la boutique Pinia dans une application VueJS enfant ?

Je crée une bibliothèque pour réutiliser les applications VueJS dans plusieurs autres projets. C'est un plugin qui génère et affiche des formulaires dans n'importe quel projet VueJS.

J'ai utilisé Pinia comme magasin dans cette bibliothèque et Vite pour la construire. Comment rendre le stockage d'une bibliothèque lisible au niveau du projet qui l'importe ? Mon problème est que dans l'extension Chrome pour VueJS, je n'ai pas accès au magasin.

Exemple de la bibliothèque J'ai créé cette boutique dans la bibliothèque :

en main.ts 文件中,我有 install méthode :

export default {
  install: (app: App, options: PluginOptions) => {
    app.component('UsfBuilder', UsfBuilder)

    app.use(createPinia())
  },
}

...mais dans mon extension Vue, je ne vois que l'App Store et non la boutique de la bibliothèque...


Je sais que cela fonctionne car lorsque j'utilise "console.log" dans le magasin de la bibliothèque, l'élément status affiche la valeur correcte !

Pile :


P粉680487967P粉680487967294 Il y a quelques jours526

répondre à tous(1)je répondrai

  • P粉574268989

    P粉5742689892023-12-30 00:33:05

    J'ai trouvé la solution sur Reddit. Si vous utilisez Pina pour construire la bibliothèque, elle doit être dans vite.config.ts 文件中的 rollupOptions 中添加 Pinia 选项外部和全局 : 

    export default defineConfig({
      //...
    build: {
        commonjsOptions: {
          esmExternals: true,
        },
        lib: {
          entry: resolve(__dirname, 'src/main.ts'),
          name: 'Formbuilder',
          fileName: 'formbuilder-plugin',
        },
        rollupOptions: {
          external: ['vue', 'pinia'],
          output: {
            globals: {
              vue: 'Vue',
              pinia: 'pinia',
            },
          },
        },
      },
    })
    

    répondre
    0
  • Annulerrépondre