जावास्क्रिप्ट इम्पोर्ट असेर्शन्स (आता इम्पोर्ट ॲट्रिब्यूट्स) जाणून घ्या. JSON सुरक्षितपणे इम्पोर्ट करणे, कोड भविष्यवेधी करणे व मॉड्यूल सुरक्षा वाढवण्यासाठी ते कसे वापरावे. विकसकांसाठी एक व्यावहारिक मार्गदर्शक.
JavaScript Import Assertions: मॉड्यूल प्रकाराच्या सुरक्षिततेत आणि प्रमाणीकरणामध्ये सखोल माहिती
जावास्क्रिप्ट इकोसिस्टम सतत विकसित होत आहे आणि अलीकडील वर्षांतील एक महत्त्वपूर्ण प्रगती म्हणजे ES मॉड्यूल्स (ESM) चे अधिकृत प्रमाणीकरण. या प्रणालीने कोड व्यवस्थित आणि शेअर करण्यासाठी एक एकीकृत, ब्राउझर-नेटिव्ह मार्ग आणला. तथापि, मॉड्यूल्सचा वापर केवळ जावास्क्रिप्ट फायलींच्या पलीकडे विस्तारल्यावर, एक नवीन आव्हान निर्माण झाले: JSON कॉन्फिगरेशन फायलींसारख्या इतर प्रकारच्या सामग्रीला कोणतीही अस्पष्टता किंवा सुरक्षितता धोके न ठेवता सुरक्षितपणे आणि स्पष्टपणे कसे इम्पोर्ट करावे? याचे उत्तर एका शक्तिशाली, तरीही विकसित होत असलेल्या वैशिष्ट्यामध्ये आहे: इम्पोर्ट असेर्शन्स.
हे सर्वसमावेशक मार्गदर्शक तुम्हाला या वैशिष्ट्याबद्दल आवश्यक असलेली प्रत्येक गोष्ट समजावून सांगेल. ते काय आहेत, ते कोणत्या गंभीर समस्या सोडवतात, आज तुमच्या प्रकल्पांमध्ये त्यांचा वापर कसा करायचा आणि "इम्पोर्ट ॲट्रिब्यूट्स" या अधिक योग्य नावाने ते कसे रूपांतरित होतात, हे आम्ही शोधून काढू.
इम्पोर्ट असेर्शन्स म्हणजे नक्की काय?
मूळतः, इम्पोर्ट असेर्शन हे इनलाइन मेटाडेटाचा एक भाग आहे जो तुम्ही एका `import` स्टेटमेंटसोबत प्रदान करता. हा मेटाडेटा जावास्क्रिप्ट इंजिनला तुम्ही इम्पोर्ट केलेल्या मॉड्यूलचा स्वरूप काय अपेक्षित आहे हे सांगतो. इम्पोर्ट यशस्वी होण्यासाठी हा एक करार किंवा पूर्वअट म्हणून कार्य करतो.
सिंटॅक्स स्वच्छ आणि संयोगात्मक आहे, `assert` कीवर्ड वापरून त्यानंतर एक ऑब्जेक्ट येतो:
import jsonData from "./config.json" assert { type: "json" };
चला हे समजून घेऊया:
import jsonData from "./config.json": हे मानक ES मॉड्यूल इम्पोर्ट सिंटॅक्स आहे जे आपल्याला आधीच परिचित आहे.assert { ... }: हा नवीन भाग आहे. `assert` कीवर्ड हे सूचित करतो की आपण मॉड्यूलबद्दल एक असेर्शन प्रदान करत आहोत.type: "json": हे असेर्शन स्वतःच आहे. या प्रकरणात, आपण असेर्शन करत आहोत की `./config.json` येथील संसाधन हे JSON मॉड्यूल असणे आवश्यक आहे.
जर जावास्क्रिप्ट रनटाइम फाइल लोड करतो आणि ते वैध JSON नाही असे ठरवतो, तर ते जावास्क्रिप्ट म्हणून पार्स करण्याचा किंवा कार्यान्वित करण्याचा प्रयत्न करण्याऐवजी एक एरर फेकेल आणि इम्पोर्ट अयशस्वी करेल. ही साधी तपासणी वैशिष्ट्याच्या सामर्थ्याचा आधार आहे, मॉड्यूल लोडिंग प्रक्रियेत आवश्यक असलेली अपेक्षितता आणि सुरक्षितता आणते.
"का": गंभीर वास्तविक-जगातील समस्या सोडवणे
इम्पोर्ट असेर्शन्सचे पूर्णपणे कौतुक करण्यासाठी, त्यांच्या परिचयापूर्वी विकसकांनी कोणत्या आव्हानांना तोंड दिले हे आपल्याला मागे वळून पाहणे आवश्यक आहे. प्राथमिक वापर प्रकरण नेहमीच JSON फायली इम्पोर्ट करणे हे राहिले आहे, जी एक आश्चर्यकारकपणे खंडित आणि असुरक्षित प्रक्रिया होती.
प्री-असेर्शन युग: JSON इम्पोर्ट्सची बेबंद दुनिया
या मानकापूर्वी, जर तुम्हाला तुमच्या प्रोजेक्टमध्ये JSON फाइल इम्पोर्ट करायची असेल, तर तुमचे पर्याय विसंगत होते:
- Node.js (CommonJS): तुम्ही `require('./config.json')` वापरू शकत होता, आणि Node.js जादूने फाइल तुमच्यासाठी JavaScript ऑब्जेक्टमध्ये पार्स करेल. हे सोयीचे होते पण गैर-मानक होते आणि ब्राउझरमध्ये काम करत नव्हते.
- Bundlers (Webpack, Rollup): वेबपॅक सारखी साधने `import config from './config.json'` ला परवानगी देत असत. तथापि, हे नेटिव्ह जावास्क्रिप्ट वर्तन नव्हते. बंडलर्स बिल्ड प्रक्रियेदरम्यान JSON फाइलला पडद्यामागे जावास्क्रिप्ट मॉड्यूलमध्ये रूपांतरित करत होते. यामुळे विकास वातावरण आणि नेटिव्ह ब्राउझर कार्यान्वयनामध्ये एक विसंगती निर्माण झाली.
- Browser (Fetch API): ब्राउझर-नेटिव्ह मार्ग `fetch` वापरणे होता:
const response = await fetch('./config.json');const config = await response.json();
हे कार्य करते, पण ते अधिक तपशीलवार आहे आणि ES मॉड्यूल ग्राफशी व्यवस्थितपणे एकत्रित होत नाही.
एकसमान मानकांचा अभाव दोन मोठ्या समस्यांना कारणीभूत ठरला: पोर्टेबिलिटी समस्या आणि एक महत्त्वपूर्ण सुरक्षा भेद्यता.
सुरक्षा वाढवणे: MIME प्रकाराच्या गोंधळाचे हल्ले रोखणे
इम्पोर्ट असेर्शन्सचे सर्वात आकर्षक कारण म्हणजे सुरक्षा. कल्पना करा की तुमचा वेब ॲप्लिकेशन सर्व्हरवरून कॉन्फिगरेशन फाइल इम्पोर्ट करत आहे:
import settings from "https://api.example.com/settings.json";
असेर्शनशिवाय, ब्राउझरला फाइलचा प्रकार अंदाज करावा लागतो. ते फाइल विस्तार (`.json`) पाहू शकते किंवा, अधिक महत्त्वाचे म्हणजे, सर्व्हरने पाठवलेली `Content-Type` HTTP हेडर पाहू शकते. पण जर एखाद्या दुर्भावनापूर्ण अभिनेत्याने (किंवा फक्त चुकीच्या कॉन्फिगर केलेल्या सर्व्हरने) जावास्क्रिप्ट कोडसह प्रतिसाद दिला परंतु `Content-Type` `application/json` म्हणून ठेवला किंवा `application/javascript` पाठवला तर काय होईल?
अशा परिस्थितीत, ब्राउझरला केवळ निष्क्रिय JSON डेटा पार्स करण्याची अपेक्षा असताना मनमानी जावास्क्रिप्ट कोड कार्यान्वित करण्यासाठी फसवले जाऊ शकते. यामुळे क्रॉस-साइट स्क्रिप्टिंग (XSS) हल्ले आणि इतर गंभीर असुरक्षितता येऊ शकतात.
इम्पोर्ट असेर्शन्स हे सुंदरपणे सोडवतात. `assert { type: 'json' }` जोडून, तुम्ही जावास्क्रिप्ट इंजिनला स्पष्टपणे सूचना देत आहात:
"हे इम्पोर्ट केवळ तेव्हाच पुढे न्यावे जर संसाधन खात्रीशीरपणे JSON मॉड्यूल असेल. जर ते दुसरे काही असेल, विशेषतः एक्झिक्युटेबल स्क्रिप्ट, तर ताबडतोब थांबवा."
इंजिन आता कठोर तपासणी करेल. जर मॉड्यूलचा MIME प्रकार वैध JSON प्रकार (जसे की `application/json`) नसेल किंवा सामग्री JSON म्हणून पार्स करण्यात अयशस्वी झाली, तर `TypeError` सह इम्पोर्ट नाकारले जाईल, ज्यामुळे कोणताही दुर्भावनापूर्ण कोड चालण्यापासून रोखला जाईल.
अपेक्षितता आणि पोर्टेबिलिटी सुधारणे
नॉन-जावास्क्रिप्ट मॉड्यूल्स कसे इम्पोर्ट केले जातात हे प्रमाणीकृत करून, असेर्शन्स तुमचा कोड अधिक अपेक्षित आणि पोर्टेबल बनवतात. Node.js मध्ये काम करणारा कोड आता ब्राउझर किंवा डेनोमध्ये बंडलर-विशिष्ट जादूवर अवलंबून न राहता त्याच प्रकारे काम करेल. ही स्पष्टता संदिग्धता दूर करते आणि विकसकाचा उद्देश पूर्णपणे स्पष्ट करते, ज्यामुळे अधिक मजबूत आणि देखरेख करण्यायोग्य ॲप्लिकेशन्स तयार होतात.
इम्पोर्ट असेर्शन्स कसे वापरावे: एक व्यावहारिक मार्गदर्शक
इम्पोर्ट असेर्शन्स विविध जावास्क्रिप्ट वातावरणांमध्ये स्थिर आणि डायनॅमिक इम्पोर्ट्ससह वापरले जाऊ शकतात. चला काही व्यावहारिक उदाहरणे पाहूया.
स्थिर इम्पोर्ट्स
स्थिर इम्पोर्ट्स सर्वात सामान्य वापर प्रकरण आहेत. ते मॉड्यूलच्या शीर्ष स्तरावर घोषित केले जातात आणि जेव्हा मॉड्यूल प्रथम लोड केले जाते तेव्हा ते सोडवले जातात.
कल्पना करा की तुमच्या प्रोजेक्टमध्ये `package.json` फाइल आहे:
package.json:
{
"name": "my-project",
"version": "1.0.0",
"description": "A sample project."
}
तुम्ही त्याची सामग्री थेट तुमच्या JavaScript मॉड्यूलमध्ये खालीलप्रमाणे इम्पोर्ट करू शकता:
main.js:
import pkg from './package.json' assert { type: 'json' };
console.log(`Running ${pkg.name} version ${pkg.version}.`);
// Output: Running my-project version 1.0.0.
येथे, `pkg` कॉन्स्टंट `package.json` मधील पार्स केलेला डेटा असलेला एक नियमित जावास्क्रिप्ट ऑब्जेक्ट बनतो. मॉड्यूल केवळ एकदाच मूल्यांकन केले जाते आणि परिणाम कॅश केला जातो, जसे इतर कोणत्याही ES मॉड्यूलमध्ये होते.
डायनॅमिक इम्पोर्ट्स
डायनॅमिक `import()` मॉड्यूल्स मागणीनुसार लोड करण्यासाठी वापरले जाते, जे कोड स्प्लिटिंग, लेझी लोडिंग किंवा वापरकर्त्याच्या परस्परसंवाद किंवा ॲप्लिकेशन स्थितीवर आधारित संसाधने लोड करण्यासाठी योग्य आहे. इम्पोर्ट असेर्शन्स या सिंटॅक्ससह अखंडपणे एकत्रित होतात.
असेर्शन ऑब्जेक्ट `import()` फंक्शनला दुसऱ्या ॲर्ग्युमेंट म्हणून पास केले जाते.
समजा तुमच्याकडे एक ॲप्लिकेशन आहे जे अनेक भाषांना समर्थन देते, ज्यात भाषांतर फाइल्स JSON म्हणून संग्रहित आहेत:
locales/en-US.json:
{
"welcome_message": "Hello and welcome!"
}
locales/es-ES.json:
{
"welcome_message": "¡Hola y bienvenido!"
}
तुम्ही वापरकर्त्याच्या पसंतीनुसार योग्य भाषा फाइल डायनॅमिकली लोड करू शकता:
app.js:
async function loadLocalization(locale) {
try {
const translations = await import(`./locales/${locale}.json`, {
assert: { type: 'json' }
});
// The default export of a JSON module is its content
document.getElementById('welcome').textContent = translations.default.welcome_message;
} catch (error) {
console.error(`Failed to load localization for ${locale}:`, error);
// Fallback to a default language
}
}
const userLocale = navigator.language || 'en-US'; // e.g., 'es-ES'
loadLocalization(userLocale);
लक्षात ठेवा की JSON मॉड्यूल्ससह डायनॅमिक इम्पोर्ट वापरताना, पार्स केलेला ऑब्जेक्ट अनेकदा परत केलेल्या मॉड्यूल ऑब्जेक्टच्या `default` प्रॉपर्टीवर उपलब्ध असतो. ही लक्षात ठेवण्यासारखी एक सूक्ष्म परंतु महत्त्वाची बाब आहे.
पर्यावरण सुसंगतता
आधुनिक जावास्क्रिप्ट इकोसिस्टममध्ये इम्पोर्ट असेर्शन्ससाठी समर्थन आता मोठ्या प्रमाणावर आहे:
- ब्राउझर्स: क्रोम आणि एजमध्ये आवृत्ती 91 पासून, सफारीमध्ये आवृत्ती 17 पासून आणि फायरफॉक्समध्ये आवृत्ती 117 पासून समर्थित आहे. नवीनतम स्थितीसाठी नेहमी CanIUse.com तपासा.
- Node.js: आवृत्ती 16.14.0 पासून समर्थित (आणि v17.1.0+ मध्ये डीफॉल्टनुसार सक्षम). यामुळे शेवटी Node.js कॉमनजेएस (`require`) आणि ईएसएम (`import`) या दोन्हीमध्ये JSON कसे हाताळते यात सुसंवाद साधला.
- Deno: एक आधुनिक, सुरक्षा-केंद्रित रनटाइम म्हणून, डेनो एक लवकर स्वीकारणारा होता आणि त्याला बऱ्याच काळापासून मजबूत समर्थन आहे.
- बंडलर्स: वेबपॅक, वाइट आणि रोलअप यांसारख्या प्रमुख बंडलर्स `assert` सिंटॅक्सला समर्थन देतात, ज्यामुळे तुमचा कोड विकास आणि उत्पादन बिल्ड या दोन्ही दरम्यान सुसंगतपणे कार्य करतो याची खात्री होते.
उत्क्रांती: `assert` पासून `with` पर्यंत (इम्पोर्ट ॲट्रिब्यूट्स)
वेब मानकांचे जग पुनरावृत्तीचे आहे. इम्पोर्ट असेर्शन्सची अंमलबजावणी आणि वापर होत असताना, TC39 समितीने (जावास्क्रिप्टचे मानकीकरण करणारी संस्था) अभिप्राय गोळा केला आणि लक्षात आले की "असेर्शन" हा शब्द भविष्यातील सर्व वापर प्रकरणांसाठी सर्वोत्तम योग्य नसू शकतो.
एक "असेर्शन" म्हणजे फाइलची सामग्री *फेच केल्यानंतर* तपासणी (एक रनटाइम तपासणी) सूचित करते. तथापि, समितीने असे भविष्य पाहिले जिथे हा मेटाडेटा इंजिनला मॉड्यूलला *कसे* फेच करावे आणि पार्स करावे (एक लोड-टाइम किंवा लिंक-टाइम निर्देश) याबद्दल निर्देश म्हणून देखील कार्य करू शकेल.
उदाहरणार्थ, तुम्हाला CSS फाइल एक कन्स्ट्रक्टीबल स्टाइलशीट ऑब्जेक्ट म्हणून इम्पोर्ट करायची असेल, फक्त ते CSS आहे की नाही हे तपासण्यासाठी नाही. हा एक तपासणीपेक्षा अधिक निर्देश आहे.
या व्यापक उद्देशाचे अधिक चांगल्या प्रकारे प्रतिबिंब करण्यासाठी, प्रस्तावाचे नाव इम्पोर्ट असेर्शन्स वरून इम्पोर्ट ॲट्रिब्यूट्स असे बदलले गेले आणि सिंटॅक्स `assert` ऐवजी `with` कीवर्ड वापरण्यासाठी अद्यतनित केले गेले.
भविष्यातील सिंटॅक्स (`with` वापरून):
import config from "./config.json" with { type: "json" };
const translations = await import(`./locales/es-ES.json`, { with: { type: 'json' } });
हा बदल का आणि याचा तुमच्यासाठी काय अर्थ आहे?
`with` कीवर्ड निवडला गेला कारण तो अर्थपूर्णदृष्ट्या अधिक तटस्थ आहे. तो कठोरपणे स्थितीची पडताळणी करण्याऐवजी इम्पोर्टसाठी संदर्भ किंवा पॅरामीटर्स प्रदान करण्याचे सूचित करतो. हे भविष्यात ॲट्रिब्यूट्सच्या विस्तृत श्रेणीसाठी दार उघडते.
सध्याची स्थिती: 2023 च्या उत्तरार्धापासून आणि 2024 च्या सुरुवातीपासून, जावास्क्रिप्ट इंजिन आणि साधने संक्रमण काळात आहेत. `assert` कीवर्ड मोठ्या प्रमाणावर अंमलात आणला गेला आहे आणि जास्तीत जास्त सुसंगततेसाठी तुम्ही आज तो वापरला पाहिजे. तथापि, मानक अधिकृतपणे `with` मध्ये बदलले आहे आणि इंजिन त्याची अंमलबजावणी करण्यास सुरुवात करत आहेत (कधीकधी `assert` सह एक डिप्रीकेशन चेतावणीसह).
विकसकांसाठी, या बदलाची जाणीव असणे ही महत्त्वाची गोष्ट आहे. `with` ला समर्थन देणाऱ्या वातावरणातील नवीन प्रकल्पांसाठी, नवीन सिंटॅक्स स्वीकारणे शहाणपणाचे आहे. विद्यमान प्रकल्पांसाठी, मानकाशी सुसंगत राहण्यासाठी कालांतराने `assert` वरून `with` मध्ये स्थलांतरित होण्याची योजना करा.
सामान्य चुका आणि सर्वोत्तम पद्धती
हे वैशिष्ट्य सरळ असले तरी, काही सामान्य समस्या आणि लक्षात ठेवण्यासारख्या सर्वोत्तम पद्धती आहेत.
चूक: असेर्शन/ॲट्रिब्यूट विसरणे
जर तुम्ही असेर्शनशिवाय JSON फाइल इम्पोर्ट करण्याचा प्रयत्न केला, तर तुम्हाला एरर येण्याची शक्यता आहे. ब्राउझर JSON ला जावास्क्रिप्ट म्हणून कार्यान्वित करण्याचा प्रयत्न करेल, ज्यामुळे `SyntaxError` येईल कारण `{` त्या संदर्भात ऑब्जेक्ट लिटरल ऐवजी ब्लॉकची सुरुवात असल्यासारखे दिसते.
चुकीचे: import config from './config.json';
त्रुटी: `Uncaught SyntaxError: Unexpected token ':'`
चूक: सर्व्हर-साइड MIME प्रकाराची चुकीची कॉन्फिगरेशन
ब्राउझरमध्ये, इम्पोर्ट असेर्शन प्रक्रिया सर्व्हरने परत केलेल्या `Content-Type` HTTP हेडरवर मोठ्या प्रमाणात अवलंबून असते. जर तुमचा सर्व्हर `Content-Type` `text/plain` किंवा `application/javascript` सह `.json` फाइल पाठवत असेल, तर फाइलची सामग्री पूर्णपणे वैध JSON असली तरीही इम्पोर्ट `TypeError` सह अयशस्वी होईल.
सर्वोत्तम पद्धती: तुमचा वेब सर्व्हर `.json` फायली `Content-Type: application/json` हेडरसह योग्यरित्या सर्व्ह करण्यासाठी कॉन्फिगर केलेला असल्याची नेहमी खात्री करा.
सर्वोत्तम पद्धत: स्पष्ट आणि सुसंगत रहा
*सर्व* नॉन-जावास्क्रिप्ट मॉड्यूल इम्पोर्ट्ससाठी (सध्या प्रामुख्याने JSON साठी) इम्पोर्ट ॲट्रिब्यूट्स वापरण्यासाठी टीम-व्यापी धोरण स्वीकारा. ही सुसंगतता तुमचा कोड अधिक वाचनीय, सुरक्षित आणि पर्यावरण-विशिष्ट विचित्रतेला अधिक लवचिक बनवते.
JSON च्या पलीकडे: इम्पोर्ट ॲट्रिब्यूट्सचे भविष्य
`with` सिंटॅक्सची खरी रोमांचकता त्याच्या संभाव्यतेमध्ये आहे. JSON हा आतापर्यंतचा पहिला आणि एकमेव प्रमाणित मॉड्यूल प्रकार असला तरी, इतरांसाठी आता दार उघडले आहे.
सीएसएस मॉड्यूल्स
सर्वात अपेक्षित वापर प्रकरणांपैकी एक म्हणजे सीएसएस फायली थेट मॉड्यूल्स म्हणून इम्पोर्ट करणे. सीएसएस मॉड्यूल्ससाठीचा प्रस्ताव यास परवानगी देईल:
import sheet from './styles.css' with { type: 'css' };
या परिस्थितीत, `sheet` सीएसएस मजकूरची स्ट्रिंग नसेल तर एक `CSSStyleSheet` ऑब्जेक्ट असेल. हा ऑब्जेक्ट नंतर डॉक्युमेंट किंवा शॅडो DOM रूटवर कार्यक्षमतेने लागू केला जाऊ शकतो:
document.adoptedStyleSheets = [sheet];
कंपोनेंट-आधारित फ्रेमवर्क आणि वेब कंपोनंट्समध्ये स्टाईल्स हाताळण्याचा हा एक अधिक कार्यक्षम आणि एनकॅप्सुलेटेड मार्ग आहे, ज्यामुळे फ्लॅश ऑफ अनस्टाईल्ड कंटेंट (FOUC) सारख्या समस्या टाळता येतात.
इतर संभाव्य मॉड्यूल प्रकार
फ्रेमवर्क विस्तारणीय आहे. भविष्यात, आम्हाला इतर वेब मालमत्तांसाठी प्रमाणित इम्पोर्ट्स दिसू शकतात, ज्यामुळे ES मॉड्यूल प्रणालीचे अधिक एकीकरण होईल:
- HTML मॉड्यूल्स: HTML फायली इम्पोर्ट आणि पार्स करण्यासाठी, कदाचित टेम्पलेटिंगसाठी.
- WASM मॉड्यूल्स: वेबअसेंब्ली लोड करताना अतिरिक्त मेटाडेटा किंवा कॉन्फिगरेशन प्रदान करण्यासाठी.
- GraphQL मॉड्यूल्स: `.graphql` फायली इम्पोर्ट करण्यासाठी आणि त्यांना एएसटी (ऍब्स्ट्रॅक्ट सिंटॅक्स ट्री) मध्ये पूर्व-पार्स करण्यासाठी.
निष्कर्ष
जावास्क्रिप्ट इम्पोर्ट असेर्शन्स, आता इम्पोर्ट ॲट्रिब्यूट्समध्ये विकसित होत आहेत, प्लॅटफॉर्मसाठी एक महत्त्वपूर्ण पाऊल पुढे टाकतात. ते मॉड्यूल प्रणालीला केवळ जावास्क्रिप्ट-वैशिष्ट्यापासून एक बहुमुखी, सामग्री-अज्ञेय संसाधन लोडरमध्ये रूपांतरित करतात.
चला मुख्य फायद्यांचा आढावा घेऊया:
- वर्धित सुरक्षा: ते MIME प्रकाराच्या गोंधळाचे हल्ले रोखतात, कार्यान्वित करण्यापूर्वी मॉड्यूलचा प्रकार विकसकाच्या अपेक्षेशी जुळतो याची खात्री करून.
- सुधारित कोड स्पष्टता: सिंटॅक्स स्पष्ट आणि घोषणात्मक आहे, ज्यामुळे इम्पोर्टचा उद्देश त्वरित स्पष्ट होतो.
- प्लॅटफॉर्म मानकीकरण: ते Node.js, ब्राउझर्स आणि बंडलर्समधील विखंडन दूर करून, JSON सारख्या संसाधनांना इम्पोर्ट करण्याचा एकच, मानक मार्ग प्रदान करतात.
- भविष्यवेधी पाया: `with` कीवर्डमध्ये बदल CSS, HTML आणि यांसारख्या भविष्यातील मॉड्यूल प्रकारांना समर्थन देण्यासाठी तयार असलेली एक लवचिक प्रणाली तयार करतो.
एक आधुनिक वेब विकसक म्हणून, या वैशिष्ट्याचा स्वीकार करण्याची वेळ आली आहे. आजच तुमच्या प्रकल्पांमध्ये `assert { type: 'json' }` (किंवा जेथे समर्थित आहे तेथे `with { type: 'json' }`) वापरण्यास सुरुवात करा. तुम्ही अधिक सुरक्षित, अधिक पोर्टेबल आणि वेब प्लॅटफॉर्मच्या रोमांचक भविष्यासाठी तयार असलेला कोड लिहित असाल.