2015-03-26 15 views
19

मैंने वेबपैक सफलतापूर्वक स्थापित किया है - यह मेरे बेबेल और एससीएसएस फ़ाइलों को ठीक से संकलित कर रहा है, और मुझे घड़ी की कार्यक्षमता ठीक काम करने के लिए मिला है। लेकिन मैं हॉट मॉड्यूल प्रतिस्थापन के साथ भी काम करना चाहूंगा - और मुझे इसे जाने में कठिनाइयों का सामना करना पड़ रहा है। जब मैं अपने ब्राउज़र में dev सर्वर लोड करता हूं तो यह Cannot resolve module 'webpack/hot/dev-server' दिखाता है। मेरे config इस तरह दिखता है:काम करने के लिए वेबपैक हॉट मॉड्यूल प्रतिस्थापन नहीं मिल सकता

import webpack from 'webpack'; 
import wpServer from 'webpack-dev-server'; 

var compiler = webpack({ 
    entry: [ 
     './src/core.js', 
     'webpack/hot/dev-server' 
    ], 
    output: { 
     path: outPath, 
     filename: '[name].js' 
    }, 
    resolveLoader: { root: path.join(MODULE_PATH, "node_modules") }, 
    module: { 
     loaders: [ 
      { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }, 
      { test: /\.scss$/, loader: "style!css!sass" } 
     ] 
    }, 
    plugins: [new webpack.HotModuleReplacementPlugin()], 
    watch: true 
}); 

var server = new wpServer(compiler, { 
    contentBase: outPath, 
    hot: true, 
    quiet: false, 
    noInfo: false, 
    lazy: true, 
    filename: "main.js", 
    watchDelay: 300, 
    headers: { "X-Custom-Header": "yes" }, 
    stats: { colors: true }, 
}); 
server.listen(8080, "localhost", function() {}); 

और मेरे index.html शामिल हैं:

<script src="http://localhost:8080/webpack-dev-server.js"></script> 
<script src='main.js'></script> 

किसी को भी किसी भी विचार है?

+1

आप एचएमआर के साथ वेबपैक-डीवी-सर्वर आलसी मोड को गठबंधन नहीं कर सकते हैं। आलसी मोड केवल HTTP अनुरोध पर जब recompiles। एचएमआर उन निरीक्षकों पर निर्भर करता है जो परिवर्तन पर पुनः संकलन करते हैं। इसके बजाए 'आलसी: झूठी' का प्रयोग करें या बस इसे छोड़ दें। –

+0

मैंने एचएमआर कैसे काम करता है और इसे काम करने के लिए क्या आवश्यक है इसके बारे में एक छोटा सा स्पष्टीकरण पोस्ट किया है: http://stackoverflow.com/questions/37016683/what-aspect-of-hot-module-replacement-is-this-article-/37022884 # 37022884 –

उत्तर

14

यदि आपने वैश्विक स्तर पर webpack-dev-server स्थापित किया है, जो npm install webpack-dev-server -g है, तो इसे स्थानीय रूप से इंस्टॉल करने का प्रयास करें (केवल -g विकल्प को हटाएं)।

मैंने ऐसा करके इस समस्या को हल किया।

+0

ऐसा लगता है कि '--hot' विकल्प स्थानीय रूप से कुछ फ़ाइलों की तलाश में है। शायद यह कहने का एक तरीका है कि वे वैश्विक स्तर पर स्थापित हैं। स्थानीय रूप से देव-सर्वर स्थापित करने और वैश्विक रूप से अजीब लगता है। –

+2

@yvesamsellem मुझे लगता है कि इस समस्या को यह करना होगा कि कैसे 'वेबपैक-देव-सर्वर' आपके प्रोजेक्ट के आधार डीआईआर को निर्धारित करता है। मैंने दस्तावेज़ों की जांच की और ऐसा लगता है कि उपयोगिता डिफ़ॉल्ट को ओवरराइड करने के लिए '--content-base' विकल्प का खुलासा करती है। किसी भी तरह से, इसे स्थानीय 'devDependency' के रूप में स्थापित करना प्लेटफॉर्म पर स्थिरता बनाए रखने के लिए पसंदीदा दृष्टिकोण होना चाहिए। –

4

मैं एक समान मुद्दे में भाग गया। मैंने इसे वेबपैक को स्थानीय रूप से इंस्टॉल करके तय किया है। एक स्थानीय देव निर्भरता के रूप में webpack स्थापित करने के लिए: यदि आप [email protected] यह सुनिश्चित कर लें उपयोग कर रहे हैं npm i -D webpack

6

महत्वपूर्ण


आप स्थापित

[email protected] 

बसचल रहा है वेबपैक के साथ अच्छा नहीं खेलेंगे 2.

यह शायद सच होगा जबकि संस्करण 2 अभी भी बीटा में है।


मैं इस काम को प्राप्त करने में भी संघर्ष कर रहा हूं क्योंकि इस विषय पर प्रलेखन बहुत खंडित है।

मिले इस सरल काम कर उदाहरण:

https://github.com/ahfarmer/webpack-hmr-starter-dev-server-api

कोड सुंदर आत्म व्याख्यात्मक है।

संबंधित मुद्दे