Rumah  >  Soal Jawab  >  teks badan

Menambah jenis pada binaan pustaka Vite anda: panduan langkah demi langkah

Saya menggunakan corak perpustakaan mengikut dokumentasi vite dan dapat menghasilkan perpustakaan komponen yang berfungsi.

Saya mencipta projek menggunakan pratetap vue-ts dan menentukan prop serta jenisnya dalam komponen saya dan menggunakan beberapa antara muka. Tetapi apabila saya membina perpustakaan, tiada jenis yang disertakan.

Bagaimana untuk menambah jenis pada binaan akhir, sama ada disimpulkan secara automatik daripada komponen atau secara manual menggunakan fail definisi?

Maklumat lanjut Berikut ialah maklumat lanjut tentang fail saya:

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"
  }
}

Saya menambah atribut emitDeclarationOnlydeclaration tetapi itu tidak membantu.

Sayavite.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 hari yang lalu580

membalas semua(2)saya akan balas

  • P粉466643318

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

    Saya secara peribadi berpendapat cara yang lebih baik ialah menggunakan vue-tsc:

    vue-tsc --declaration --emitDeclarationOnly

    Sila rujuk https://stackoverflow.com/a/70343443/398287

    balas
    0
  • P粉386318086

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

    Boleh guna vite-plugin-dts

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

    balas
    0
  • Batalbalas