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

Ajout de types à la construction de votre bibliothèque Vite : un guide étape par étape

J'ai utilisé le modèle de bibliothèque selon la documentation rapide et j'ai pu générer une bibliothèque de composants fonctionnelle.

J'ai créé le projet en utilisant le préréglage vue-ts et défini les accessoires et leurs types dans mes composants et utilisé certaines interfaces. Mais lorsque je construis la bibliothèque, aucun type n'est inclus.

Comment ajouter des types à la version finale, qu'ils soient automatiquement déduits des composants ou manuellement à l'aide de fichiers de définition ?

Plus d'informations Voici plus d'informations sur mes fichiers :

tsconfig.json

{
  "name": "@mneelansh/test-lib",
  "private": false,
  "version": "0.0.2",
  "scripts": {
    "dev": "vite",
    "build": "vue-tsc --noEmit && vite build",
    "preview": "vite preview"
  },
  "emitDeclarationOnly": true, // testing
  "declaration": true, // testing
  "main": "./dist/lib.umd.js",
  "module": "./dist/lib.es.js",
  "types": "./dist/main.d.ts",
  "exports": {
    ".": {
      "import": "./dist/lib.es.js",
      "require": "./dist/lib.umd.js"
    },
    "./dist/style.css": "./dist/style.css"
  },
  "files": [
    "dist"
  ],
  "dependencies": {
    "@types/node": "^17.0.25",
    "vue": "^3.2.25"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^2.3.1",
    "typescript": "^4.5.4",
    "vite": "^2.9.5",
    "vue-tsc": "^0.34.7"
  }
}

J'ai ajouté l'attribut emitDeclarationOnlydeclaration mais cela n'a pas aidé.

Monvite.config.ts :

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";

const path = require("path");

// https://vitejs.dev/config/
export default defineConfig({
  build: {
    lib: {
      entry: path.resolve(__dirname, "src/index.ts"),
      name: "Button",
      fileName: (format) => `lib.${format}.js`,
    },
    rollupOptions: {
      external: ["vue"],
      output: {
        globals: {
          vue: "Vue",
        },
      },
    },
  },
  plugins: [vue()],
});


P粉426780515P粉426780515271 Il y a quelques jours582

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

  • P粉466643318

    P粉4666433182024-01-22 12:15:19

    Personnellement, je pense qu'une meilleure façon est d'utiliser vue-tsc :

    vue-tsc --declaration --emitDeclarationOnly

    Veuillez vous référer à https://stackoverflow.com/a/70343443/398287

    répondre
    0
  • P粉386318086

    P粉3863180862024-01-22 10:17:41

    Vous pouvez utiliser vite-plugin-dts

    import dts from "vite-plugin-dts";
    
    export default defineConfig({
      plugins: [
        dts({
          insertTypesEntry: true,
        }),
      ],
    

    répondre
    0
  • Annulerrépondre