ビルドカスタム要素แบบ エントリーポイントด้วย Svelet 3


การสร้าง 横柄なด้วย スベルトทำได้ง่ายมากอยู่แล้ว แล้วยัง 設定เพียงไม่กี่ขั้นตอน แต่มีสิ่งที่เราต้องการจัดการคือการ ビルドコンポーネントออกมาหลายๆ コンポーネントพร้อมๆกัน

เราเตรียม Webコンポーネント構造ตามภาพนะครับ มี テキストボックス、ボタン
เราอยากจะ ビルドコンポーネントให้ได้ตามโครงสร้างที่เราได้กำหนดไว้ใน src/web_componentsเราจะ 設定ยังไงกัน มาดูครับ
/** rollup.config.js */
import svelte from "rollup-plugin-svelte";
import path from "path";
import multiInput from "rollup-plugin-multi-input";
import fs from "fs";
จากนั้นกำหนด ベースパスของเราให้เรียบร้อยครั
let basePath = path.join(__dirname, "./src/web_components");
เริ่มอ่าน フォルダทั้งหมดจาก ベースパスที่เราได้กำหนด
const getAllFiles = (dir) =>
  fs.readdirSync(dir).reduce((files, file) => {
  ...
  }, []);
จากนั้นเอา フォルダและ ファイルมา 結合กัน
const getAllFiles = (dir) =>
  fs.readdirSync(dir).reduce((files, file) => {
  const name = path.join(dir, file);
  ...
  }, []);
ตรวจสอบว่าชื่อที่ได้มาเป็น ファイルหรือ フォルダ
const getAllFiles = (dir) =>
  fs.readdirSync(dir).reduce((files, file) => {
   const name = path.join(dir, file);
   const isDirectory = fs.statSync(name).isDirectory();
   ...
  }, []);
ถ้าชื่อยังเป็น フォルダอยู่ก็ไปหาไฟล์มาใหม่ โดยใช้หลักการของ 再帰機能ถ้าเป็น ファイルแล้วก็ไป 合併するเข้ากับ ファイルแล้วก็ リターンชื่อไฟล์ทั้งหมดออกไป เป็น アレイ
const getAllFiles = (dir) =>
  fs.readdirSync(dir).reduce((files, file) => {
   const name = path.join(dir, file);
   const isDirectory = fs.statSync(name).isDirectory();
   return isDirectory ? [...files, ...getAllFiles(name)] : [...files, name];
  }, []);
เรียกใช้งานเพื่อเอาชื่อไฟล์ทั้งหมดออกมาเป็น アレイ
const srcFiles = getAllFiles(basePath);
เรียกใช้งาน ソースファイルเข้าไปใน 設定ในช่อง 入力ซึ่ง 入力ของ ロールプสามารถรับค่าเป็น アレイได้ นั่นเลยทำเราสามารถส่ง エントリーポイントเข้าไปแบบ 複数エントリポイントได้
export default {
    input: srcFiles,
    output: {
     format: "es",
     dir: "public/build",
    },
    plugins: [
      svelte({
        compilerOptions: {
          customElement: true },
      }),
      multiInput({
        relative: "src/",
        transformOutputPath: (output) => {
            return output;
        },
      })
    ]
};
พอ 設定เสร็จลองมา ビルドกันครับ yarn build / npm run build
ก่อน ビルド

หลัง ビルド
เรียบร้อยแล้วครับ ได้โครงสร้าง コンポーネントตามที่เรา デザインไว้ที่ src แล้ว แล้วยังสามารถ ビルドコンポーネントพร้อมกันหลายไฟล์ได้ด้วย สบายเลยงานนี้

เราสามารถเข้า コンポーネントทั้งหมดภายใต้ WebHoundコンポーネント/インデックス.jsได้ทันที หรือจะเลือกใช้ コンポーネントที่ละตัวได้ ตามที่ต้องการ
การสร้างและ ビルドコンポーネントใน スベルトไม่ใช่เรื่องยากอีกต่อไป ท่านใดที่อ่านยังไม่เข้าใจสามมรถย้อนไปดูเรื่องการ สร้าง コンポーネントด้วย スベルトได้ ตาม リンクด้านล่างได้เลยครับ
สามารถเรียนรู้การใช้งาน スベルトแบบ 一歩一歩ได้ที่
Svelte: Framework Not Framework — (ตอนที่ 1) แรกรู้จัก
ขอบคุณทุกท่านที่อ่านมาถึงตรงนี้ ถ้าอ่านแล้วรู้มีประโยชน์ ฝากกด 購読するหรือ シェアリンクให้คนอื่นรับรู้ด้วยนะครับ ขอบคุณครับ