ES6 אַרייַנפיר מיט פּאַראַמעטערס

ווי אַזוי צו פאָרן פּאַראַמעטערס צו אַ ES6 מאָדולע ווען ימפּאָרטינג עס

פּאַראַמעטערס פֿאַר אַ ES6-אַרייַנפיר

איך האָב לעצטנס געבעטן זיך צי עס איז טאַקע מעגלעך צו נוצן עס 6-מאָדולע סיסטעם ימפּאָרט סטייטמאַנץ אין דזשאַוואַסקריפּט אין ניט בלויז דער פּראָסט וועג (ימפּאָרטינג נאָר אַ היגע מאָדולע דורך קאָרעוו דרך אָדער נאָמען פון דעם פּעקל), אָבער מיט פּאַראַמעטערס.

מיין נוצן פאַל וואָלט זיין עפּעס ווי דאָס: צושטעלן עטלעכע פּאַראַמעטערס בעשאַס די אַרייַנפיר, אַזוי די ימפּאָרטיד מאָדולע קענען זיך מייַכל די פּאַראַמעטערס ווי פאָן פֿאַר קאַנדישאַנאַל ימפּאָרץ אָדער ספּעציעל קאָד האַנדלינג.

ווי עס טורנס אויס, אַז ס טאָוטאַלי מעגלעך!

ימפּאָרץ פון ES6 זענען בלויז URL ס

איידער מיר קוק די קאָד, עס איז וויכטיק צו געדענקען אַז ימפּאָרט-סטייטמאַנץ אין נאָדע.דזשס זענען פּראַקטאַקלי נאָר URL ס. Node.js ניצט שוין אַ אַלגערידאַם צו באַשליסן ווי די URL ס אַקשלי קוקן ווען גאָר ריזאַלווד. פֿאַר בייַשפּיל, אויב איר נאָר צושטעלן די קאָרעוו דרך ווי די אַרייַנפיר ספּעציפיציר, Node.js נאָך ריזאַלווז די שטריקל צו אַן אַבסאָלוט URL פֿאַר די אַרייַנפיר הינטער די סינז.

ניצן URL אָנפֿרעג פּאַראַמעטערס פֿאַר אַן ימפּאָרט

און ווייַל די אַרייַנפיר איז ריזאַלווד אין אַ URL, מיר קענען נוצן די פּראָסט URL זוכן פּאַראַמעטערס און URL-פראַגמאַנץ אין אונדזער ימפּאָרץ.

ערשטער, מאַכן זיכער אַז ES6 מאַדזשולז זענען געשטיצט צו פּרובירן דעם שטריך. דעם ריקווייערז אַ קליין ענדערונג צו אונדזער package.json, ווו די "טיפּ" -פיעלד מוזן זיין באַשטימט צו "מאָדולע". באַמערקונג אַז איר דאַרפֿן צו נוצן Node.js ווערסיע 12 אָדער העכער.

{
  "name": "es6-import-params",
  "version": "1.0.0",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": ""
}

ווייַטער דעפינירן צוויי מינימאַל מאַדזשולז פֿאַר אַ פּשוט דעמאָ.

//
// index.js
//

import {greet} from "./lib.js?name=Tom";

// This will print "Hello Tom".
greet();
//
// lib.js
//

// We're using Node's native 'URL'-module
// to transform the provided string into
// a usable representation.
//
// Note that 'import' here isn't part of
// an acutal import, but rather resolved
// to a global variable.
const url = new URL(import.meta.url);

// A simple greeter for demo purposes.
// We just access the map 'searchParams'
// from our usable 'url'-object and use
// a fallback if no params are provided.
export function greet() {
  console.log(`Hello ${url.searchParams.get("name") || "World"}`);
}

קייפל ימפּאָרץ מיט פאַרשידענע פּאַראַמעטערס

ווי געשריבן אין די דאָקומענט נאָדע.דזשס, יעדער ימפּאָרט קאַשט ביי רונטימע פֿאַר פאַסטער סאַבסאַקוואַנט ימפּאָרץ אין אנדערע מאַדזשולז. דעריבער עס איז וויכטיק צו וויסן אַז ימפּאָרץ פון דער זעלביקער מאָדולע אָבער מיט פאַרשידענע פּאַראַמעטערס באַקומען יעדער קאַשט ינדיווידזשואַלי. דאָך ימפּאָרץ מיט אַ ריכטן סיגנאַטורע, נאָך לייענען פֿון דער קאַש.

// 
// index.js
//

// A small adaptation for the index.js
// file, this time importing the same 
// module twice w/ different params. Each
// module gets cached twice, too.
import * as tomLib from "./lib.js?name=Tom";
import * as lukeLib from "./lib.js?name=Luke";

// 'Hello Tom'.
tomLib.greet();
// 'Hello Luke'.
lukeLib.greet();

// Still 'Hello Tom', as it's
// its own module.
tomLib.greet();

ניצן קאַסעס

די ביישפילן אין דעם אַרטיקל זענען בעקיוון זייער קורץ, אָבער איר באַקומען דעם געדאַנק. דעפּענדינג אויף דיין באדערפענישן, ניצן אָנפֿרעג פּאַראַמעטערס מיט ימפּאָרץ קענען זיין גאַנץ אַן עלעגאַנט אָפּציע פֿאַר באַשטעטיקן "גלאבאלע" וועריאַבאַלז פֿאַר יעדער מאָדולע. דאָס ילימאַנייץ די נויט פֿאַר פּראַוויידערז געטערז און סעטערז צו דערגרייכן די זעלבע ציל.

פֿאָרשלאָגן

פֿאַרבונדענע

נאָך-וואָרט

שפּראַכן