Fonctions de calcul séparées partagées par la compilation Vue dans des packages distincts
P粉421119778
2023-09-01 17:46:49
<p>Comment partager du code commun <code>vue/nuxt</code>spécifique entre différents packages ? </p>
<p>Je ne souhaite pas utiliser <code>monorepo</code>, mais j'ai du code partagé que je souhaite séparer dans son propre package. Ce code partagé (nouveau package) est écrit en utilisant <code>@nuxtjs/composition-api</code>, uniquement le <code>calculé</code> et <code> /templates ;méthodes</code>. </p>
<p>Je ne souhaite pas que ce package soit configuré en tant que plugin. Au lieu de cela, importez directement pour profiter du tremblement d'arbre (tout comme <code>composition-api</code>). </p>
<p>Je suis habitué à utiliser <code>rollupjs</code> pour créer des modules importables. </p>
<pre class="brush:php;toolbar:false;">//Nouveau package
//index.js
exporter { par défaut comme isTrue } depuis './src/isTrue'
...
//src/estVrai
importer { calculé } depuis '@nuxtjs/composition-api'
exporter par défaut (p) =>
return calculated(() => p === 'true') //Je ne sais pas si cela va détruire la réactivité ? ! ? !
}</pré>
<p>Je n'ai eu aucun problème à le compiler aux formats <code>.ssr, .esm, .min</code> via <code>rollupjs</code></p>
<p>Le problème se produit lorsque j'importe un nouveau package dans un fichier de travail. </p>
<pre class="brush:php;toolbar:false;">importer { isTrue } depuis 'new-package'
exporter par défaut{
nom : 'testComp',
configuration (accessoires) {
retour {
estActive : isTrue(props.active)
}
}</pré>
<p> produira : </p>
<pre class="brush:php;toolbar:false;">[vue-composition-api] Vue.use(VueCompositionAPI) doit être appelée avant d'utiliser des fonctions. ≪/pré>
<p>Je comprends que <code>@nuxtjs/composition-api</code> est un wrapper pour VueCompositionAPI. </p>
<p>Je ne souhaite pas installer le nouveau package en tant que plugin, j'omet donc l'installation du nouveau package (exemple d'installation : https://github.com/wuruoyun/vue-component-lib-starter/blob /master/src/install .js)</p>
Utilisé
options API
Utilisez
rollupjs
pour compiler library.js et l'importer