Une extension starter pour vscode avec Vue 3 + Vite et tailwind pour créer facilement des webviews interactives.
Cette extension fournit une base solide pour développer des extensions VS Code avec des interfaces utilisateur modernes utilisant Vue 3 et Vite. Elle inclut un exemple complet de communication bidirectionnelle entre l'extension et la webview.
- 🚀 Vue 3 + Vite - Développement moderne avec hot reload
- 🎨 Tailwind CSS - Framework CSS utilitaire intégré
- 🔄 Communication bidirectionnelle - Échange de messages entre extension et webview
- ⚡ Mode développement - Serveur Vite intégré pour un développement rapide
- 📦 Build optimisé - Assets buildés pour la production
- 🛠️ Configuration flexible - Port Vite configurable
- 📁 Sidebar intégrée - Webview dans la barre latérale VS Code
├── src/
│ ├── extension.ts # Point d'entrée principal
│ ├── includes/
│ │ └── webview.ts # Provider de webview
│ ├── tooling/
│ │ └── utils.ts # Utilitaires (détection Vite, port, etc.)
│ └── webview/ # Application Vue
│ ├── src/
│ │ ├── App.vue # Composant racine
│ │ ├── main.ts # Point d'entrée Vue
│ │ ├── components/ # Composants Vue
│ │ └── helpers/ # Helpers de communication
│ ├── vite.config.ts # Configuration Vite
│ └── package.json # Dépendances webview
- Node.js (v18+)
- npm ou yarn
- VS Code
- Clonez le repository :
git clone <votre-repo>
cd justhugo-vsce-vue-starter- Installez les dépendances :
# Dépendances de l'extension
npm install
# Dépendances de la webview
cd src/webview
npm install
cd ../..- Mode développement avec hot reload :
# Terminal 1 : Démarrer Vite (webview)
cd src/webview
npm run dev
# Terminal 2 : Compiler l'extension
npm run watch- Tester l'extension :
- Ouvrez le projet dans VS Code
- Appuyez sur
F5pour lancer une nouvelle instance VS Code - Ouvrez la Command Palette (
Ctrl+Shift+P) - Exécutez
VSCEVS: Ouvrir la webview
# Build de la webview
cd src/webview
npm run build
cd ../..
# Package de l'extension
npm run package
# Créer le .vsix
npx vsce packageLe port du serveur Vite peut être configuré dans les paramètres VS Code ou directement dans le package.json :
{
"vitePort.vitePort": 5170
}vscevs.helloWorld- Commande Hello Worldvscevs.openWebview- Ouvrir la webview
// Dans webview.ts
webviewView.webview.postMessage({
type: "onMultByPiResult",
value: result
});// Dans la webview Vue
const vscodeApi = (window as any).vscodeApi;
vscodeApi.postMessage({
type: 'onMultByPi',
value: number.value
});webviewView.webview.onDidReceiveMessage(async (data) => {
switch (data.type) {
case "onMultByPi":
const result = data.value * Math.PI;
webviewView.webview.postMessage({
type: "onMultByPiResult",
value: result
});
break;
}
});- HomeWelcome.vue - Page d'accueil avec liens utiles
- MultiplyByPi.vue - Exemple de composant avec communication bidirectionnelle
- sendPostMessage.ts - Utilitaires pour la communication avec VS Code
- Cache avec expiration (1 heure)
- Gestion des états de chargement
- Composition API Vue pour les requêtes
- Créer le composant dans
src/webview/src/components/ - L'importer dans
App.vue - Ajouter les handlers de messages si nécessaire dans
webview.ts
- Définir la commande dans
package.json:
{
"command": "vscevs.maCommande",
"title": "Ma Commande"
}- L'enregistrer dans
extension.tsouwebview.ts
-
Backend Extension :
- TypeScript
- VS Code Extension API
- Webpack
-
Frontend Webview :
- Vue 3 (Composition API)
- Vite
- Tailwind CSS
- TypeScript
npm run compile- Compiler l'extensionnpm run watch- Compiler en mode watchnpm run package- Build de productionnpm run lint- Linter le code
npm run dev- Serveur de développement Vitenpm run build- Build de productionnpm run preview- Preview du build
- Vérifiez que le serveur Vite est démarré (
npm run devdans/src/webview) - Vérifiez le port dans la configuration VS Code
- Consultez la console de développement VS Code (
Help > Developer Tools)
- Assurez-vous que toutes les dépendances sont installées
- Vérifiez que les types DOM sont bien inclus dans
tsconfig.json
MIT © [justhugo]
Les contributions sont les bienvenues ! N'hésitez pas à :
- Fork le projet
- Créer une branche feature (
git checkout -b feature/AmazingFeature) - Commit vos changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
⭐ N'oubliez pas de starring le repo si ce starter vous a été utile !