2016-08-31 14 views
18

का उपयोग करते समय नोड मॉड्यूल "एफएस" नहीं ढूंढ सकता है, मैं एक बंडल बनाने के लिए node.js और वेबपैक का उपयोग कर रहा हूं। मैंने जो पढ़ा है, उससे node.js में फ़ाइलों को प्रबंधित करने के लिए fs मॉड्यूल होना चाहिए। हालांकि जब मैं require("fs") पर कॉल करता हूं तो मुझे Cannot find module "fs" त्रुटि मिलती है। मुझे क्या करना चाहिए?वेबपैक

+0

Node.js किस संस्करण का उपयोग कर रहे हैं? इस प्रश्न में कुछ स्रोत कोड जोड़ सकते हैं? – qzb

+0

संस्करण 6.5 ईएम .. var fs = requ ("fs"); यह अकेला मुझे त्रुटि देगा – user3799968

+0

क्या आप किसी भी मौके से बंडल करने के लिए वेबपैक का उपयोग कर रहे हैं? –

उत्तर

26

वेबपैक के साथ बंडल करते समय मुझे इस समस्या में आया और this thread पर उत्तर मिला।

module.exports = { 
    entry: "./app", 
    output: { 
    path: __dirname, 
    filename: "bundle.js" 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.js$/, 
       exclude: 'node_modules', 
       loader: 'babel', 
       query: {presets: ['es2015']}, 
      } 
     ] 
    }, 
    target: 'node' 
}; 

नोड webpack के लिए लक्ष्य निर्धारित करके आवश्यक परिवर्तन कर देगा अपने नोड आवेदन

संपादित बंडल करने:

मेरे लिए इसे हल करने रास्ता निम्नलिखित config का उपयोग किया गया इस उत्तर को निशाना बनाया वेबपैक 1.x जिसे अब हटा दिया गया है।

+1

हालांकि यह ठीक किया गया त्रुटि को त्रुटि नहीं मिल सका। एफएस लॉगिंग कंसोल मुझे अपेक्षित आउटपुट नहीं देता है। मैं fs से किसी भी काम का उपयोग नहीं कर सकता। – user3799968

+0

अरे ठीक है क्षमा करें मेरे पास मेरे सामने कोड नहीं था जिसका मैंने उपयोग किया था। मैंने जवाब अपडेट किया है और परीक्षण किया है यह ठीक काम करता है। 'लक्ष्य जोड़ना: 'नोड' fs मॉड्यूल को बंडल करने से वेबपैक रोकता है और सामान्य उपयोग की अनुमति देता है। –

+14

मुझे आवश्यकता है तो – user3799968

4

वेबवर्कर्स (जो बदले में नोड सक्षम था) का उपयोग करते हुए एनडब्ल्यूजेएस एप्लिकेशन को बंडल करते समय मुझे एक ही समस्या थी।

मैंने जो समाधान पाया वह मॉड्यूल के नाम पर उपसर्ग commonjs के साथ externals में उपयोग किए जाने वाले प्रत्येक मूल मॉड्यूल को शामिल करना था। उदाहरण के लिए:

... 
    target: "webworker", // or 'node' or 'node-webkit' 
    externals:{ 
     fs: "commonjs fs", 
     path: "commonjs path" 
    } 
    ... 

मैं एक ही मुद्दे को हल करने के लिए लक्ष्य "WebWorker" और "नोड वेबकिट" विभिन्न परियोजनाओं में के लिए एक ही किया है।

+0

त्वरित स्पष्टीकरण @ पीडीजी, यह केवल वेबपैक 3 के लिए है? आपके उत्तर ने मुझे अपने एनडब्ल्यू.जेएस ऐप के साथ किसी मुद्दे को दूर करने में मदद की, बहुत बहुत धन्यवाद! चूंकि मुझे उपलब्ध एफएस की आवश्यकता है, इसलिए मुझे अपनी वेबपैक कॉन्फ़िगरेशन पर लक्ष्य के रूप में 'नोड-वेबकिट' का उपयोग करना पड़ा। हालांकि मुझे लगता है कि यह केवल [email protected] स्थापित करने के बाद ही काम करता है। क्या आप इस मामले की पुष्टि कर सकते हैं? – ackzell

+0

मुझे खुशी है कि यह आपकी मदद करता है। मैं पुष्टि कर सकता हूं कि यह वेबपैक 2+ के साथ भी काम करता है, क्योंकि मैं अभी इस तरह एक प्रोजेक्ट में इसका उपयोग कर रहा हूं। – PDG