


Comment créer une bibliothèque de composants de projet Monorepo dans Vue3
Qu'est-ce que Monorepo
C'est en fait très simple Cela signifie qu'une base de code contient de nombreux projets Bien que ces projets soient liés, ils sont logiquement indépendants et peuvent être gérés par différentes personnes. équipe pour le maintenir
Pourquoi utiliser pnpm
Pour les projets Monorepo, il est très pratique d'utiliser pnpm pour la gestion des packages. Étant donné qu'il peut y avoir plusieurs packages pour la bibliothèque de composants que nous sommes sur le point de développer, et que ces packages doivent être testés conjointement les uns avec les autres localement, pnpm dispose donc d'un support naturel pour eux. En fait, d’autres outils de gestion de paquets, comme fil, lerna, etc., peuvent également le faire, mais c’est relativement lourd. pnpm est maintenant très mature. Les bibliothèques de composants Star telles que Vant et ElementUI utilisent pnpm, ce projet utilise donc également pnpm comme outil de gestion de packages.
Utilisation de pnpm
Installation
npm install pnpm -g
Initialiser le projet
Exécuter pnpm init< dans le projet répertoire racine /code>, le fichier <code>package.json
sera automatiquement généré pnpm init
,会自动生成package.json
文件
{ "name": "easyest", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
包管理
我们新建一个 packages 文件夹用于后续来存放我们的各种包。假如我们有了 a 包和 b 包,在 packages 下新建 a 和 b(这里用于测试 pnpm 的本地引用),然后分别在 a 和 b 目录下执行pnpm init
初始化
这里需要改一下包名,我这里将 name 改成@easyest/a 表示这个 a 包是属于 easyest 这个组织下的。在发布之前,请确保已经登录到 npm,并创建一个组织,例如 easyest。比如此时 a 的 package.json
{ "name": "@easyest/a", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
这里我们的 a 包代表工具包,而 package.json 的 main 属性就是包的入口即 index.js。
所以在 a 目录下新建 index.js
export default () => { console.log("我是@easyest/a包"); };
然后在 b 包下新建 index.js 进行引用
import sayHello from "@easyest/a"; sayHello();
p>我们用到了 a 包,所以需要先安装 a,在 B 目录下执行pnpm add @easyest/a
,显然这样会报错的,因为我们还没有将两个包进行关联,那么如何进行关联呢,其实很简单
在根目录新建 pnpm 的工作区文件 pnpm-workspace.yaml 就可以将包进行关联
packages: - 'packages/**'
这样就表示 packages 目录下的所有包都被关联了,然后再执行pnpm add @easyest/a
注意这里我们使用了 import es6 语法,所以我们要在 A 和 B 的package.json
中新增字段"type": "module"
我们会发现直接在 b 目录的 node_modules 出现了 a 的软链接。同时,b的package.json的依赖字段多了"@easyest/a": "workspace:^1.0.0"
,这就表示已经关联到本地的@easyest/a
node index.js
Nous créerons un nouveau dossier de packages pour les versions ultérieures stockage de nos divers colis. Si nous avons le package a et le package b, créez a et b sous les packages (utilisés ici pour tester la référence locale de pnpm), puis exécutez l'initialisation
pnpm init
dans les répertoires a et b respectivement#🎜🎜 #
rrreee
Notre package a ici représente le package d'outils, et l'attribut principal de package.json est l'entrée du package, index.js.Alors créez un nouvel index.js dans le répertoire a
Ensuite, créez un nouvel index.js dans le package b pour référence
rrreee#🎜🎜#
pnpm add @easyest/a
dans le répertoire B. Évidemment, cela signalera une erreur. , car nous n'avons pas associé les deux packages, alors comment les associer Eh bien, c'est en fait très simple #🎜🎜##🎜🎜# Créez un nouveau fichier d'espace de travail pnpm pnpm-workspace.yaml dans le répertoire racine pour associer les packages #🎜 🎜#rrreee#🎜🎜#Cela signifie tous les fichiers du répertoire des packages. Les packages sont tous associés, puis exécutez pnpm add @easyest/a
#🎜🎜##🎜🎜#
Nouveau champ "type": "module"
dans package.json
#🎜🎜##🎜🎜#Nous trouverons qu'un lien symbolique apparaît directement dans les node_modules du répertoire b. En même temps, le package.json de b a plus de champs de dépendance "@easyest/a": "workspace:^1.0.0"
, ce qui signifie qu'il a été associé au @easyest local /a
Inclus#🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#À ce moment-là, nous l'exécutons dans le répertoire b#🎜🎜#rrreee#🎜🎜##🎜🎜# #🎜🎜 ##🎜🎜#À ce stade, nous avons terminé l'association du package local, et il deviendra plus pratique de tester le package à l'avenir#🎜🎜#Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

vue3+vite:src utilise require pour importer dynamiquement des images et des rapports d'erreurs et des solutions. vue3+vite importe dynamiquement plusieurs images. Si vue3 est développé à l'aide de TypeScript, il y aura un message d'erreur indiquant que requireisnotdefined ne peut pas être utilisé comme imgUrl. :require(' .../assets/test.png') est importé car TypeScript ne prend pas en charge require, donc l'importation est utilisée. Voici comment le résoudre : utilisez waitimport.

tinymce est un plug-in d'éditeur de texte riche entièrement fonctionnel, mais l'introduction de tinymce dans vue n'est pas aussi fluide que les autres plug-ins de texte riche de Vue. tinymce lui-même ne convient pas à Vue, et @tinymce/tinymce-vue doit être introduit, et Il s'agit d'un plug-in de texte riche étranger et n'a pas passé la version chinoise. Vous devez télécharger le package de traduction depuis son site officiel (vous devrez peut-être contourner le pare-feu). 1. Installez les dépendances associées npminstalltinymce-Snpminstall@tinymce/tinymce-vue-S2. Téléchargez le package chinois 3. Introduisez le skin et le package chinois Créez un nouveau dossier tinymce dans le dossier public du projet et téléchargez le.

Pour implémenter le front-end du blog avec Vue, vous devez implémenter l'analyse markdown. S'il y a du code, vous devez implémenter la mise en évidence du code. Il existe de nombreuses bibliothèques d'analyse de démarques pour Vue, telles que markdown-it, vue-markdown-loader, Markdown, vue-markdown, etc. Ces bibliothèques sont toutes très similaires. Marked est utilisé ici et highlight.js est utilisé comme bibliothèque de mise en évidence du code. Les étapes d'implémentation spécifiques sont les suivantes : 1. Installez les bibliothèques dépendantes. Ouvrez la fenêtre de commande sous le projet vue et entrez la commande suivante npminstallmarked-save//marked pour convertir le markdown en htmlnpmins.

Pour réaliser un rafraîchissement partiel de la page, il suffit d'implémenter le re-rendu du composant local (dom). Dans Vue, le moyen le plus simple d'obtenir cet effet est d'utiliser la directive v-if. Dans Vue2, en plus d'utiliser l'instruction v-if pour restituer le dom local, nous pouvons également créer un nouveau composant vierge. Lorsque nous devons actualiser la page locale, accéder à cette page de composant vierge, puis y revenir. la garde beforeRouteEnter dans la page d’origine vierge. Comme le montre la figure ci-dessous, comment cliquer sur le bouton d'actualisation dans Vue3.X pour recharger le DOM dans la zone rouge et afficher l'état de chargement correspondant. Puisque la garde dans le composant dans la syntaxe scriptsetup dans Vue3.X n'a que o

Une fois le projet vue3 empaqueté et publié sur le serveur, la page d'accès affiche un 1 vide. Le publicPath dans le fichier vue.config.js est traité comme suit : const{defineConfig}=require('@vue/cli-service') module.exports=defineConfig({publicPath :process.env.NODE_ENV==='production'?'./':'/&

L'effet final est d'installer le composant VueCropper filaddvue-cropper@next. La valeur d'installation ci-dessus est pour Vue3 ou si vous souhaitez utiliser d'autres méthodes de référence, veuillez visiter son adresse officielle npm : tutoriel officiel. Il est également très simple de le référencer et de l'utiliser dans un composant. Il suffit d'introduire le composant correspondant et son fichier de style. Je ne le référence pas globalement ici, mais j'introduis uniquement import{userInfoByRequest}from'../js/api. ' dans mon fichier de composant import{VueCropper}from'vue-cropper&.

Préface Que ce soit vue ou réagir, lorsque nous rencontrons plusieurs codes répétés, nous réfléchirons à comment réutiliser ces codes, au lieu de remplir un fichier avec un tas de codes redondants. En fait, Vue et React peuvent être réutilisés en extrayant des composants, mais si vous rencontrez quelques petits fragments de code et que vous ne souhaitez pas extraire un autre fichier, en comparaison, React peut être utilisé dans le même Déclarez le widget correspondant dans le fichier. , ou implémentez-le via la fonction de rendu, telle que : constDemo:FC=({msg})=>{returndemomsgis{msg}}constApp:FC=()=>{return(

Utilisation de Vue pour créer des éléments personnalisés WebComponents est un nom collectif pour un ensemble d'API Web natives qui permettent aux développeurs de créer des éléments personnalisés réutilisables (customelements). Le principal avantage des éléments personnalisés est qu’ils peuvent être utilisés avec n’importe quel framework, même sans. Ils sont idéaux lorsque vous ciblez des utilisateurs finaux susceptibles d'utiliser une pile technologique frontale différente, ou lorsque vous souhaitez dissocier l'application finale des détails d'implémentation des composants qu'elle utilise. Vue et WebComponents sont des technologies complémentaires et Vue offre un excellent support pour l'utilisation et la création d'éléments personnalisés. Vous pouvez intégrer des éléments personnalisés dans des applications Vue existantes ou utiliser Vue pour créer
