Table des matières
Qu'est-ce que Monorepo
Pourquoi utiliser pnpm
Utilisation de pnpm
Installation
Initialiser le projet
包管理
Maison interface Web Voir.js Comment créer une bibliothèque de composants de projet Monorepo dans Vue3

Comment créer une bibliothèque de composants de projet Monorepo dans Vue3

May 20, 2023 pm 05:55 PM
vue3 monorepo

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
Copier après la connexion

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"
}
Copier après la connexion

包管理

我们新建一个 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"
}
Copier après la connexion

这里我们的 a 包代表工具包,而 package.json 的 main 属性就是包的入口即 index.js。

所以在 a 目录下新建 index.js

export default () => {
  console.log("我是@easyest/a包");
};
Copier après la connexion

然后在 b 包下新建 index.js 进行引用

import sayHello from "@easyest/a";
sayHello();
Copier après la connexion

Comment créer une bibliothèque de composants de projet Monorepo dans Vue3

p>我们用到了 a 包,所以需要先安装 a,在 B 目录下执行pnpm add @easyest/a,显然这样会报错的,因为我们还没有将两个包进行关联,那么如何进行关联呢,其实很简单

在根目录新建 pnpm 的工作区文件 pnpm-workspace.yaml 就可以将包进行关联

packages:
    - &#39;packages/**&#39;
Copier après la connexion

这样就表示 packages 目录下的所有包都被关联了,然后再执行pnpm add @easyest/a

Comment créer une bibliothèque de composants de projet Monorepo dans Vue3

注意这里我们使用了 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
Copier après la connexion
Package Management

Comment créer une bibliothèque de composants de projet Monorepo dans Vue3Nous 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#🎜🎜 #

Vous devez changer le nom du package ici. J'ai changé le nom ici en @easyest/a pour indiquer que ce package appartient à l'organisation la plus simple. Avant de publier, assurez-vous d'être connecté à npm et créez une organisation, telle que easyest. Par exemple, le package.json d'un à ce moment

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.

Comment créer une bibliothèque de composants de projet Monorepo dans Vue3Alors créez un nouvel index.js dans le répertoire a

rrreee

Ensuite, créez un nouvel index.js dans le package b pour référence

rrreee#🎜🎜# Comment construire la bibliothèque de composants du projet Monorepo dans Vue3#🎜🎜## 🎜🎜#p>Nous utilisons Nous sommes arrivés au package a, nous devons donc d'abord en installer un et exécuter 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#🎜🎜##🎜🎜#Comment créer la bibliothèque de composants du projet Monorepo dans Vue3#🎜🎜##🎜🎜#Notez que nous utilisons la syntaxe import es6 ici, nous devons donc ajouter 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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

vue3+vite : Comment résoudre l'erreur lors de l'utilisation de require pour importer dynamiquement des images dans src vue3+vite : Comment résoudre l'erreur lors de l'utilisation de require pour importer dynamiquement des images dans src May 21, 2023 pm 03:16 PM

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.

Comment utiliser tinymce dans le projet vue3 Comment utiliser tinymce dans le projet vue3 May 19, 2023 pm 08:40 PM

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.

Comment Vue3 analyse le démarque et implémente la mise en évidence du code Comment Vue3 analyse le démarque et implémente la mise en évidence du code May 20, 2023 pm 04:16 PM

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.

Comment actualiser le contenu partiel de la page dans Vue3 Comment actualiser le contenu partiel de la page dans Vue3 May 26, 2023 pm 05:31 PM

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

Comment résoudre le problème selon lequel une fois le projet vue3 empaqueté et publié sur le serveur, la page d'accès s'affiche vide Comment résoudre le problème selon lequel une fois le projet vue3 empaqueté et publié sur le serveur, la page d'accès s'affiche vide May 17, 2023 am 08:19 AM

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'?'./':'/&

Comment sélectionner un avatar et le recadrer dans Vue3 Comment sélectionner un avatar et le recadrer dans Vue3 May 29, 2023 am 10:22 AM

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&.

Comment utiliser les composants réutilisables Vue3 Comment utiliser les composants réutilisables Vue3 May 20, 2023 pm 07:25 PM

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(

Comment utiliser definitionCustomElement pour définir des composants dans Vue3 Comment utiliser definitionCustomElement pour définir des composants dans Vue3 May 28, 2023 am 11:29 AM

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

See all articles