javascript - למה אנחנו צריכים להחריג את node_modules ב-webpack?


להלן קובץ קונפיגורציית webpack:

module.exports = {
    mode: "development",
    entry: "./src/index.ts",
    output: { filename: "bundle.js" },
    resolve: { extensions: [".ts"] },
    module: {
        rules: [
            { test: /\.ts/, use: "ts-loader", exclude: /node_modules/ }
           }
        ]
    }
};

אני לא מבין למה אנחנו צריכים להוציא את node_modules כשעוסקים בקבצי TypeScript? להלן הנקודות שלי:

1-ראשית, כמעט כל החבילות נכתבות ב-JS ולא ב-TS, זה לא יזיק אם נכלול את node_modules.

2-אם אנחנו מתייחסים לחבילה שכתוב ב-ts, אנחנו בהחלט רוצים שהקוד ב-ts יוקמפל לקוד js, ואז אנחנו צריכים לכלול את node_modules כדי לוודא שהכל עובד, נכון?

תשובה #1

1-ראשית, כמעט כל החבילות נכתבות ב-JS ולא ב-TS, זה לא יזיק אם נכלול את node_modules.

החרגת node_modules בשלב התרגום משפרת את הביצועים שיכולים אחרת להיפגע.

אם אנחנו מתייחסים לחבילה שכתובה ב-ts, אנחנו בהחלט רוצים שקוד ה-ts יוקומפל לקוד js, ואז אנחנו צריכים לכלול את node_modules כדי לוודא שהכל עובד, נכון?

כן, ואז הוא המפתח כאן. החרגת node_modules בשלב התרגום לא מונעת מ-webpack להשתמש בתוכן שלו בשלב החבילה.