---
createdAt: 2026-01-11
updatedAt: 2026-01-11
title: `vite-env-only` और Intlayer – false positive `node:fs` अस्वीकृत त्रुटि
description: vite-env-only यह क्यों रिपोर्ट करता है कि Intlayer + React-Router + Vite के साथ `node:fs` आयात अस्वीकृत है और इस स्थिति में क्या करना चाहिए।
keywords:
  - intlayer
  - vite
  - react-router
  - vite-env-only
  - node:fs
  - आयात अस्वीकृत
  - एलियास
  - क्लाइंट बंडल
slugs:
  - frequent-questions
  - vite-env-only-node-fs-false-positive
---

# vite-env-only Intlayer के साथ `node:fs` को अस्वीकार कर देता है

यदि आपने **vite-env-only** प्लगइन का उपयोग किया है (जैसा कि पुराने React-Router v7 सुझावों में उल्लेख है) और आप देखते हैं:

```bash

Error: [vite-env-only] Import denied

* Denied by specifier pattern: /^node:/
* Importer: index.html
* Import: "node:fs"

```

…हालाँकि आपके क्लाइंट बंडल में **कोई `node:fs` नहीं है**, यह एक **false positive** है।

## कारण

`vite-env-only` Vite ग्राफ़ रिज़ॉल्यूशन के आरंभिक चरण में एक Babel-आधारित जाँच चलाता है, _इसके पहले_:

- अलायसिंग (Intlayer के browser बनाम node मैपिंग्स सहित),
- dead-code elimination,
- SSR बनाम क्लाइंट रिज़ॉल्यूशन,
- React-Router जैसे वर्चुअल मॉड्यूल।

Intlayer पैकेजों में ऐसा कोड होता है जो Node और ब्राउज़र दोनों पर काम कर सकता है। एक _मध्यवर्ती_ चरण में, `node:fs` जैसा Node बिल्ट-इन ग्राफ़ में दिखाई दे सकता है **पहले** कि Vite इसे क्लाइंट बिल्ड से हटा दे। `vite-env-only` यह देखकर तुरंत त्रुटि देता है, हालांकि अंतिम बंडल में यह मौजूद नहीं होता।

## React-Router और सर्वर मॉड्यूल

React-Router के दस्तावेज़ में **server module conventions**  
(https://reactrouter.com/api/framework-conventions/server-modules), टीम **स्पष्ट रूप से `vite-env-only` का उपयोग करने का सुझाव देती है** ताकि server-only imports क्लाइंट बंडल में लीक न हों।

हालाँकि, ये कन्वेंशन्स Vite की aliasing, conditional exports, और tree-shaking पर निर्भर करते हैं ताकि server-only कोड हटाया जा सके। जबकि aliasing और conditional exports पहले से लागू हैं, कुछ Node-आधारित utilities उस चरण में अभी भी पैकेजेज़ जैसे `@intlayer/core` में मौजूद रहते हैं (हालाँकि वे क्लाइंट पर कभी import नहीं होते)। क्योंकि tree-shaking अभी तक नहीं चला है, वे फ़ंक्शंस अभी भी Babel द्वारा पार्स किए जाते हैं, और `vite-env-only` उनके `node:` imports का पता लगा कर एक false positive उठाता है, भले ही वे अंतिम क्लाइंट बंडल से सही तरीके से हटाए जा चुके हों।

## कैसे ठीक करें / वर्कअराउंड

### अनुशंसित: `vite-env-only` हटाएँ

सिर्फ़ प्लगइन को हटा दें। कई मामलों में इसकी आवश्यकता नहीं होती. Vite अपने resolution के माध्यम से क्लाइंट बनाम सर्वर इम्पोर्ट्स को पहले से ही संभालता है।

यह Intlayer में किसी बदलाव के बिना `node:fs` पर दिखने वाली false positive को ठीक कर देता है।

### इसके बजाय अंतिम बिल्ड को सत्यापित करें

अगर आप फिर भी यह सुनिश्चित करना चाहते हैं कि क्लाइंट में कोई Node built-ins न हो, तो इसे **बिल्ड के बाद** करें, उदाहरण के लिए:

```bash
pnpm build
grep -R "node:" dist/
```

यदि कोई परिणाम नहीं मिलता है, तो आपके क्लाइंट बंडल्स साफ़ हैं।

## सारांश

- `vite-env-only` `node:fs` पर त्रुटि दे सकता है क्योंकि यह बहुत जल्दी जाँच करता है।
- Vite + Intlayer + React-Router के server modules conventions सामान्यतः server-only संदर्भों को सही ढंग से हटा देते हैं।
- प्लगइन को हटाना या _final output_ की जाँच करना आम तौर पर सबसे अच्छा समाधान होता है।
