NodeJS/Express: मेरे द्वारा src-file (src/server/app.js) में import express from 'express' जोड़ने के बाद, वेबपैक src/server/app.js से dist/server/app.js में ट्रांसपिल करने में विफल रहता है।


त्रुटि संदेश इस तरह दिखते हैं:

ERROR in ./~/express/lib/request.js

विस्तार से:

Module not found: Error: Can't resolve 'net'
 in '/Users/timo/Desktop/Eggs/node_modules/express/lib'

या

ERROR in ./~/express/lib/view.js

विस्तार से:

Module not found: Error: Can't resolve 'fs'
 in '/Users/timo/Desktop/Eggs/node_modules/express/lib'

क्या मुझे अपनी webpack.config.babel.js-फ़ाइल में कुछ बदल करना है?

यह रहा:

export default [
  {
    entry: './src/server/app.js',
    output: {
      path: './dist/server',
      filename: 'app.js'
    },
    module: {
      loaders: [{
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        query: { presets: ['es2015', 'react'] }
      }]
    }
  },
    {
    entry: './src/client/app.js',
    output: {
      path: './dist/client',
      filename: 'app.js'
    },
    module: {
      loaders: [{
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        query: { presets: ['es2015', 'react'] }
      }]
    }
  }
]
3
timomue 2 मार्च 2017, 17:41

2 जवाब

सबसे बढ़िया उत्तर

अपने सर्वर-साइड कोड के लिए "node" लक्ष्य सेट करने का प्रयास करें:

{
  entry  : './src/server/app.js',
  target : 'node',
  ...
}

डिफ़ॉल्ट रूप से, वेबपैक एक वेब ब्राउज़र में उपयोग के लिए संकलित होगा, जो बहुत सारे मॉड्यूल का समर्थन नहीं करता है जो केवल सर्वर-साइड चलाने के लिए समझ में आता है (जैसे net और fs)।

4
robertklep 2 मार्च 2017, 17:45

क्या आप कॉन्फ़िगर हैं .babelrc?webpack1 में module.loaders। अगर समस्या आती भी है। आप node_modules को हटा सकते हैं और फिर से इंस्टॉल कर सकते हैं npm install। हो सकता है कि आप कुछ निर्भरता को वैश्विक रिपॉजिटरी से npm link के माध्यम से जोड़ते हैं, मैं मिल चुका हूं।

0
holi-java 2 मार्च 2017, 18:48