Skip to content

Create Project with Vite

Features

  • Build tool ที่เร็วมาก ใช้ ES modules แทน bundling ใน development
    • ไม่ต้องรอ bundling ทั้งโปรเจคเมื่อเริ่มพัฒนา
    • โหลดไฟล์เฉพาะที่ต้องการใช้เท่านั้น
    • ใช้ Native ES Modules ของ browser โดยตรง
  • Hot Module Replacement (HMR) ที่ทำงานได้ทันที
    • อัพเดทโค้ดโดยไม่ต้องรีโหลดหน้าเว็บ
    • รักษาสถานะของแอปพลิเคชันระหว่างการพัฒนา
  • Supports Vue, React, Svelte และ frameworks อื่นๆ
    • มี template สำเร็จรูปสำหรับ framework ต่างๆ
    • ติดตั้งง่ายด้วยคำสั่งเดียว เช่น npm create vite@latest my-vue-app --template vue

Plugins

  • ระบบ plugin ที่ง่ายต่อการใช้งาน
    • เพิ่ม plugin ในไฟล์ vite.config.js
    js
    import vue from '@vitejs/plugin-vue'
    export default {
      plugins: [vue()]
    }
  • มี plugin สำเร็จรูปสำหรับงานต่างๆ เช่น Vue, React, CSS preprocessors
    • @vitejs/plugin-vue สำหรับ Vue
    • @vitejs/plugin-react สำหรับ React
    • vite-plugin-sass สำหรับ Sass/SCSS
  • สามารถเขียน plugin ของตัวเองได้ง่าย
    js
    const myPlugin = {
      name: 'my-plugin',
      transform(code, id) {
        // เปลี่ยนโค้ดที่นี่
      }
    }

ENV and Modes

  • แยก environment variables สำหรับ development และ production
  • ใช้ไฟล์ .env สำหรับกำหนดค่า environment
  • สามารถสร้าง mode เพิ่มเติมได้ตามต้องการ

Building for Production

  • ใช้ Rollup สำหรับ production build
  • มี tree-shaking และ code splitting
  • สามารถ optimize assets ได้อัตโนมัติ

Server-Side Rendering (SSR)

  • มี built-in support สำหรับ SSR
  • สามารถ pre-render pages ได้
  • ทำงานร่วมกับ frameworks ต่างๆ ได้ดี

Static Assets Handling

  • จัดการ static assets ได้อัตโนมัติ
  • สามารถ import assets เป็น URL ได้
  • มีระบบ cache busting สำหรับ production

APIs

Server Options

ตัวเลือกประเภทค่าเริ่มต้นคำอธิบาย
hoststring'localhost'กำหนด host ที่เซิร์ฟเวอร์จะฟัง
portnumber5173กำหนดพอร์ตเซิร์ฟเวอร์
strictPortbooleanfalseออกจากระบบหากพอร์ตถูกใช้งานแล้ว
httpsboolean/objectfalseเปิดใช้งาน HTTPS
proxyobject-กำหนดกฎ proxy
corsboolean/object-กำหนดนโยบาย CORS
headersobject-กำหนด HTTP headers เพิ่มเติม
hmrboolean/object-กำหนด Hot Module Replacement
fs.strictbooleantrueจำกัดการเข้าถึงไฟล์นอก workspace
fs.allowarray-ระบุ path ที่อนุญาตให้เข้าถึง
fs.denyarray-ระบุ path ที่ไม่อนุญาตให้เข้าถึง

Build Options

ตัวเลือกประเภทค่าเริ่มต้นคำอธิบาย
targetstring/array'baseline-widely-available'กำหนดความเข้ากันได้ของเบราว์เซอร์
outDirstring'dist'กำหนดโฟลเดอร์สำหรับไฟล์ที่ build
assetsDirstring'assets'กำหนดโฟลเดอร์ย่อยสำหรับ assets
assetsInlineLimitnumber4096กำหนดขนาดไฟล์ที่ควรแปลงเป็น base64
cssCodeSplitbooleantrueแยก CSS ออกเป็นไฟล์ต่างหาก
sourcemapbooleanfalseสร้าง source map สำหรับดีบัก
minifybooleantrueย่อขนาดไฟล์ JavaScript และ CSS
reportCompressedSizebooleantrueแสดงขนาดไฟล์หลังบีบอัด
chunkSizeWarningLimitnumber500ขนาดไฟล์ที่เตือนเมื่อใหญ่เกินไป (KB)

Preview Options

ตัวเลือกประเภทค่าเริ่มต้นคำอธิบาย
hoststring-กำหนด host สำหรับโหมดพรีวิว
portnumber4173กำหนดพอร์ตสำหรับโหมดพรีวิว
strictPortbooleanfalseออกจากระบบหากพอร์ตถูกใช้งานแล้ว
httpsobject-เปิดใช้งาน HTTPS
proxyobject-กำหนดกฎ proxy สำหรับพรีวิว
corsboolean/object-กำหนดนโยบาย CORS
headersobject-กำหนด HTTP headers เพิ่มเติม

Dep Optimization

ตัวเลือกประเภทคำอธิบาย
entriesstring/arrayกำหนด entry points สำหรับ pre-bundling
excludestring[]ระบุ dependencies ที่ไม่ต้องการ optimize
includestring[]ระบุ dependencies ที่ต้องการ optimize
esbuildOptionsobjectกำหนด options สำหรับ esbuild
forcebooleanบังคับให้ทำ dependency optimization ใหม่
noDiscoverybooleanปิดการค้นหา dependencies อัตโนมัติ
disabledbooleanปิดใช้งาน dependency optimization
needsInteropbooleanระบุว่าต้องการ interop สำหรับ dependency นั้นๆ

Shared Options

root base mode define plugins publicDir cacheDir resolve.alias resolve.dedupe resolve.conditions resolve.mainFields resolve.extensions resolve.preserveSymlinks html.cspNonce css.modules css.postcss css.preprocessorOptions css.preprocessorOptions[extension].additionalData css.preprocessorMaxWorkers css.devSourcemap css.transformer css.lightningcss json.namedExports json.stringify esbuild assetsInclude logLevel customLogger clearScreen envDir envPrefix appType future

SSR Options

ตัวเลือกประเภทค่าเริ่มต้นคำอธิบาย
externalstring[]-ระบุ dependencies ที่ควรเป็น external
noExternalstring[]-ระบุ dependencies ที่ไม่ควรเป็น external
targetstring'node'กำหนดสภาพแวดล้อมสำหรับ SSR
resolve.conditionsstring[]-กำหนดเงื่อนไขการ resolve
resolve.externalConditionsstring[]-เงื่อนไขสำหรับ external modules
resolve.mainFieldsstring[]-กำหนดลำดับ field ใน package.json

Worker Options

ตัวเลือกประเภทคำอธิบาย
formatstringกำหนดรูปแบบ output (es, cjs, iife)
pluginsarrayระบุ plugins ที่ใช้กับ worker
rollupOptionsobjectกำหนด options สำหรับ Rollup

CLI Options

คำสั่งคำอธิบาย
vite devเริ่ม development server
vite buildbuild สำหรับ production
vite previewpreview production build

Last updated: