जवाबों:
FYI करें: ऐसा लगता है कि OS X में कोई फ़ोल्डर दूषित हो सकता है और अब नहीं भेजा जा सकता है fsevents
(जो watchpack
/chokidar
अपने लिए और किसी भी चाइल्ड फ़ोल्डर के / खोजक उपयोग करता है) । मुझे यकीन नहीं हो रहा है कि आपके साथ ऐसा हुआ है, लेकिन यह मेरे और एक सहयोगी के लिए बहुत निराशाजनक था।
हम भ्रष्ट पैरेंट फ़ोल्डर का नाम बदलने में सक्षम थे और फिर घटनाओं को तुरंत अपेक्षित रूप से देखते थे। अधिक जानकारी के लिए इस ब्लॉग पोस्ट को देखें: http://feedback.livereload.com/knowledgebase/articles/86239-os-x-fsevents-bug-may-prevent-monitoring-of-certai
उपरोक्त लिंक से अनुशंसित फ़िक्सेस हैं:
पहले दो ने हमारे लिए काम नहीं किया, स्पॉटलाइट सुझाव की कोशिश नहीं की, और फिर से निर्माण आवश्यक साबित नहीं हुआ।
हम मूल समस्या फ़ोल्डर को फाइंडर को खोलने और प्रत्येक क्रमिक मूल फ़ोल्डर में फ़ाइलों को बनाने में सक्षम थे जब तक कि एक तुरंत दिखाई नहीं देता (क्योंकि फाइंडर इस बग के साथ ही ठीक हो जाएगा)। रूट-फोल्डर जो अपडेट नहीं करता है, वह अपराधी है। हम सिर्फ mv
इसे 'd' करते हैं और mv
इसे अपने मूल नाम पर वापस भेजते हैं, और फिर द्रष्टा ने काम किया।
पता नहीं क्या भ्रष्टाचार का कारण बनता है, लेकिन मुझे सिर्फ एक फिक्स होने की खुशी है।
watchify
, साथ काम करते समय कोई भी कदम मेरे साथ काम नहीं करता था, इसलिए मैं पोल आर्ग का उपयोग करके समाप्त हो गया। बहुत सारे लोग घड़ी की बजाय ब्राउज़र करने के लिए पोल arg पास कर रहे हैं। मेरा कोड ऐसा दिखता है:watchify(browserify(config.src,{}), {poll:100});
npm install
एक निर्देशिका का नाम बदलने के साथ-साथ चल रहे दोनों बहुत ही सघन संचालन हैं जिस तरह से सिंक क्लाइंट को कार्यान्वित किया जाता है।
यदि आपका कोड recompiled नहीं किया जा रहा है, तो देखने वालों की संख्या बढ़ाने की कोशिश करें (Ubuntu में):
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
sudo sysctl -p
Mavericks पर काम नहीं करता है। कोई नया विचार?
ModuleConcatenationPlugin
। ओमिटिंग ModuleConcatenationPlugin
देखना जारी रखने की अनुमति देता है।
/etc/sysctl.conf
सीधे बदलने की कोशिश की ? सम्मान बदलना। उस कुंजी-मूल्य का निपटान? (यदि आप तदर्थ लागू करने की आज्ञा नहीं पा सकते हैं ( sysctl -p
), तो यह एक एकल रिबूट है, और आपको अच्छा होना चाहिए ...)
sudo sysctl -a | grep max_user_watches
मेरी वेबपैक कॉन्फ़िगरेशन फ़ाइल में निम्न कोड जोड़कर मेरे लिए समस्या को ठीक किया, आशा है कि यह मदद करता है। अपने node_modules फ़ोल्डर को अनदेखा करना न भूलें, क्योंकि यह HMR (हॉट मॉड्यूल रिप्लेसमेंट) के लिए प्रदर्शन को मार देगा:
watchOptions: {
poll: true,
ignored: /node_modules/
}
watch: true
यह काम भी कर सकता है। मतदान एक कार्यक्रम या डिवाइस द्वारा अन्य कार्यक्रमों या उपकरणों की निरंतर जाँच है, यह देखने के लिए कि वे किस स्थिति में हैं, आमतौर पर यह देखने के लिए कि क्या वे अभी भी जुड़े हुए हैं या संवाद करना चाहते हैं। इसलिए सेटिंग poll: true
वेबपैक को आपके प्रोग्राम की स्थिति की जांच करने की अनुमति देता है यह देखने के लिए कि क्या कोई बदलाव किया गया है, या कम से कम मुझे लगता है कि क्या हो रहा है।
मुझे वेबस्टॉर्म के साथ काम करते समय यह समस्या हुई है।
सेटिंग अक्षम करना -> सिस्टम सेटिंग्स -> "सुरक्षित लेखन" ने इसे मेरे लिए हल कर दिया।
ऐसा करने की सिफारिश मिली: वेबपैक समस्या निवारण
बस संभव समाधानों को जोड़ने के लिए: मेरे पास ड्रॉपबॉक्स फ़ोल्डर के अंदर मेरा प्रोजेक्ट फ़ोल्डर था, इसे बाहर ले जाने से मेरे लिए समस्या हल हो गई। (OS X)
फोल्डर केस सेंसिटिविटी मेरा मुद्दा था। मेरे कोड कॉल की आवश्यकता होती है () में सभी लोअरकेस पथ के नाम थे लेकिन वास्तव में निर्देशिकाओं में एक अपरकेस अक्षर था। मैंने अपने सभी निर्देशिकाओं का नाम बदलकर लोअरकेस और वेबपैक देखने का काम किया।
एक मुद्दा यह है कि यदि आपके पथ के नाम निरपेक्ष नहीं हैं, तो इस तरह की चीजें होंगी। मैंने गलती resolve.root
से ./
इसके बजाय सेट कर दिया था __dirname
और इससे मुझे अपने ऊपर के लोगों की तरह फ़ाइलों को हटाने और फिर से बनाने में बहुत समय बर्बाद करना पड़ा।
यदि csar द्वारा संकेत के रूप में fs.inotify.max_user_watches को बदलना अभी भी काम नहीं करता है, तो अपनी स्क्रिप्ट बनाकर डॉक्स में दिखाए गए --watch --watch-poll
विकल्पों के साथ या वेबपैक चलाकर देशी वॉचरों के बजाय मतदान का उपयोग करने का प्रयास करें।
ध्यान दें कि यदि आप किसी वर्चुअल मशीन (वैग्रांट / वर्चुअलबॉक्स) के भीतर वेबपैक चलाते हैं और आप अपनी फ़ाइलों को होस्ट प्लेटफ़ॉर्म पर बदलते हैं, तो साझा किए गए फ़ोल्डर में फ़ाइल अपडेट उबंटू में इनऑटोफाई को ट्रिगर नहीं कर सकते हैं। यही कारण है कि परिवर्तन वेबपैक द्वारा नहीं उठाए जाएंगे।
देख: वर्चुअलबॉक्स टिकट # 10660
मेरे मामले में, फ़ाइल को डी गेस्ट (vi में) पर एडिटिंग और सेविंग ने वेबपैक ट्रिगर किया। इसे होस्ट पर संपादित करें (PhpStorm, Notepad या किसी अन्य एप्लिकेशन में) मैंने जो भी किया, उसके लिए वेबपैक ट्रिगर नहीं किया।
मैंने इसे योनि-fsnotify का उपयोग करके हल किया ।
vagrant-notify-forwarder
अधिक मैजिक रीलोड के लिए उपयोग करता हूं
vagrant plugin install vagrant-notify-forwarder
मेरे लिए एक स्थायी समाधान बनाया
मेरे लिए Laravel Homestead में काम करें
--watch --watch-poll
अपडेट: पूरी निर्देशिका को हटाने और रेपो से बाहर निकलने वाले गिट क्लोनिंग से मेरी समस्या ठीक हो जाती है।
यदि आप विम का उपयोग कर रहे हैं, तो आपको डिफ़ॉल्ट ऑटो के बजाय यस के लिए बैकअपकॉपी स्थापित करने का प्रयास करना चाहिए। अन्यथा विम कभी-कभी मूल फ़ाइल का नाम बदलकर एक नया बना देगा, जो वेबपैक वॉच के साथ गड़बड़ करेगा:
https://github.com/webpack/webpack/issues/781
यदि यह मामला है तो इसे अपनी विम सेटिंग्स में जोड़ें:
बैकअप बैकअप सेट करें = हाँ
मैं एक .vue फ़ाइल पर एक ही मुद्दा रहा था। जब सर्वर को पुनः आरंभ किया गया तो सभी ने ठीक काम किया है, लेकिन अगले सहेजें पर यह अब और नहीं बदला है। मुद्दा आयात फ़ाइल पथ पर था जिसमें एक अक्षर बड़ा था। इस समस्या का पता लगाना बहुत कठिन है क्योंकि सर्वर रिबूट पर सब कुछ काम करता है। अपने रास्तों के मामले की जाँच करें।
मेरे लिए, वीएस कोड में फ़ोल्डर और फाइलें बनाना मुद्दा था। ठीक करने के लिए, मैंने अपने रेपो को पुन: क्लोन किया और इस बार, कोड के बजाय कमांड लाइन के माध्यम से नए फ़ोल्डर और फाइलें बनाईं। मुझे लगता है कि कोड किसी कारण से फ़ाइलों को दूषित कर रहा था। मैंने एप्लिकेशन को अभी-अभी अपडेट किया है तो शायद यह एक नया बग है।
मेरे पास इसी तरह का मुद्दा था, न तो वेबपैक या वॉच मोड वेयर में मैंने किए गए परिवर्तनों को पकड़ा। मुझे पता चला कि यह मूल रूप से मेरी गलती थी क्योंकि मैं मॉड्यूल (.tsx फ़ाइल) बदल रहा था जो अभी तक कहीं भी आयात नहीं किया गया था (उदाहरण के लिए App.ts जो प्रवेश बिंदु है) और मैं त्रुटियों की रिपोर्ट करने के लिए बिल्ड टूल की उम्मीद कर रहा था वहाँ बनाया गया।
जिस तरह से मैंने इस मुद्दे को हल किया था वह आयात पथ में एक कैपिटलाइज़ेशन त्रुटि ढूंढ रहा था। फ़ाइल सिस्टम पर फ़ोल्डर में पहले मामले में कम मामला था, आयात पथ ऊपरी मामला था। सब कुछ ठीक संकलित है, तो यह सिर्फ एक वेबपैक घड़ी मुद्दा था।
इसके अलावा एक वर्चुअलबॉक्स (5.2.18) उबंटू (18.04) वीएम में rsync सिंक्रोनाइज़ेशन के साथ Vagrant (2.1.15) का उपयोग करते हुए यह मुद्दा था। अचानक, पहला निर्माण शानदार चलता है, लेकिन वेबपैक बाद में भी fs.inotify.max_user_watches=524288
सेट के साथ बदलाव पर विचार नहीं करता है । जोड़ा जा रहा हैpoll: true
वेबपैक कॉन्फ़िगरेशन में से भी मदद नहीं मिली।
केवल vagrant-notify-forwarder
काम किया (योनि-fsnotify किसी कारण के लिए नहीं किया गया), लेकिन फिर होस्ट पर फ़ाइल को सहेजने के बाद पुनर्निर्माण बहुत जल्दी हुआ और मुझे लगता है कि rsync के पास अपना कार्य पूरा करने के लिए पर्याप्त समय नहीं था (शायद राशि के कारण मेरे Vagrantfile के अंदर समकालिक निर्देशिकाओं का?)।
अंत में मैंने aggregateTimeout
अपने वेबपैक कॉन्फिगर में वृद्धि करके घड़ी को फिर से काम किया :
module.exports = {
watch: true,
watchOptions: {
aggregateTimeout: 10000
},
...
}
यदि यह समाधान आपके लिए काम करता है, तो इस मान को फिर से कम करने का प्रयास करें, अन्यथा आपको हर बार जब आप हिट को बचाते हैं, तब तक आपको 10 सेकंड तक इंतजार करना होगा। डिफ़ॉल्ट मान 300 एमएस है ।
मेरे node_modules
लिए सभी पैकेजों को हल करने के लिए npm इंस्टाल या यार्न को फिर से हटाने और करने से समस्या हल हो गई
ऐसा लगता है की है कि मूल्य: max_user_watches
में /proc/sys/fs/inotify/max_user_watches
प्रभावित करने वाले webpack है
अपने वास्तविक मूल्य की जांच करने के लिए
$cat /proc/sys/fs/inotify/max_user_watches
16384
16384 मेरे मामले में था और यह अभी भी पर्याप्त नहीं था।
मैंने विभिन्न प्रकार के समाधान आजमाए:
$ echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p
लेकिन ऐसा लगता है कि भले ही मैंने मूल्य बदल दिया हो, जब मैंने अपने पीसी को फिर से शुरू किया तो यह डिफ़ॉल्ट रूप से एक 16384 पर वापस चला जाएगा।
फ़ाइल बनाएँ:
sudo nano /etc/sysctl.d/90-override.conf
और इसके साथ आबाद करें:
fs.inotify.max_user_watches=200000
ऐसा लगता है कि 200000 मेरे लिए काफी है।
फ़ाइल बनाने और मान जोड़ने के बाद, बस पीसी को पुनरारंभ करें और आपको ठीक होना चाहिए।
MacOS पर एक आसान समाधान निम्नलिखित है:
एक ही डायरेक्टरी में दो टर्मिनल विंडो खोलें, जिसमें आपका प्रोजेक्ट रहता है।
पहले टर्मिनल विंडो रन में: वेबपैक - वॉच
दूसरे टर्मिनल में विंडोज़ चलती है: वेबपैक-देव-सर्वर
मैंने कई संभव समाधानों की कोशिश की है और यह सबसे विश्वसनीय लगता है
webpack --watch
परियोजना को संकलित करता है और फ़ाइलों को डिस्क पर सहेजता है, webpack
हर बचत के बाद चलने के बराबर । webpack-dev-server
एक विकास उपकरण है जो मेमोरी को संकलित करता है और सामग्री को http पर सेवा के रूप में कार्य करता है। किसी भी मामले में आपका सुझाव एक समाधान नहीं है, क्योंकि संकलित फाइलें डिस्क पर तब तक नहीं लिखी जाएंगी जब तक webpack --watch
कि विज्ञापन के रूप में काम नहीं करता है ..
इस समस्या को ठीक करने के लिए मुट्ठी भर रणनीतियों की कोशिश करने के बाद मैंने बस देना छोड़ दिया लेकिन फिर एक और मुद्दे को हल करते हुए मैंने फिर से कोशिश की और --watch
आखिरकार अचानक झंडा काम कर रहा था।
सच कहूँ तो मुझे नहीं पता कि यह विशेष रूप से क्या काम करता है लेकिन निम्नलिखित चरणों का पालन करने के बाद यह अभी काम करना शुरू कर रहा है:
1. Install most recent gcc version
$ sudo port install gcc48
$ sudo port select --set gcc mp-gcc48
2. Install most recent clang version
$ sudo port install clang-3.6
$ sudo port select --set clang mp-clang-3.6
3. Export variables holding the patch to C and C++ compiler
$ export CC=/opt/local/bin/clang
$ export CXX=/opt/local/bin/clang++
ऐसा हो सकता है कि इन पैकेजों को स्थापित करते समय कुछ निर्भरता ने पहेली के लापता टुकड़े को जोड़ा, जो जानता है ...
आशा है कि यह काम करने के लिए वहाँ किसी को भी संघर्ष कर मदद करेगा।
मैं एक और जवाब जोड़ रहा हूं क्योंकि मेरा मानना है कि यह अब तक का सबसे अच्छा समाधान है। मैं इसे हर दिन उपयोग कर रहा हूँ और यह चट्टानों! बस इस लाइब्रेरी को स्थापित करें:
https://github.com/gajus/write-file-webpack-plugin
विवरण: फ़ाइल सिस्टम के लिए बंडल फ़ाइलों को लिखने के लिए वेबपैक-देव-सर्वर प्रोग्राम को मजबूर करता है।
स्थापित कैसे करें :
npm install write-file-webpack-plugin --save-dev
अगर आपके प्रोजेक्ट में यह अचानक हुआ, तो यह समस्या को ठीक कर सकता है।
हो सकता है कि किसी तरह जो फाइलें आपके प्रोजेक्ट को ट्रैक कर रही थीं, जो वेबपैक के भ्रष्ट होने के कारण दिखता है। आप सरल चरणों का पालन करके उन्हें फिर से बना सकते हैं।
मुझे इस सवाल का पता चला जब मैं एक समान मुद्दा बना रहा था - ऐसा प्रतीत हुआ कि वेबपैक वेबपैकिंग - रनिंगिग करते समय भी नहीं लौट रहा था।
मैंने बंडल को भी हटा दिया। js और वेबपेज अभी भी मेरे संपादन से पहले प्रदर्शित हो रहा था।
आप में से जिन लोगों को यह समस्या है उनके लिए, मैंने आखिरकार क्रोम में 'खाली कैश और हार्ड रीलोड' का विकल्प दिया (राइट क्लिक के साथ रीलोड बटन पर क्लिक करें) और यही किया
समस्या .js और .ts फ़ाइलों के बीच विकृति थी। क्यों ?
प्रोजेक्ट बिल्ड पर, Visual Studio .js और .js.map में टाइपस्क्रिप्ट फ़ाइलों को संकलित करता है। यह पूरी तरह से आवश्यक है, क्योंकि वेबपैक टाइपस्क्रिप्ट फ़ाइलों के साथ-साथ (भयानक-टाइपस्क्रिप्ट-लोडर के साथ) संभालता है। जब वेनेटिकट .tsx फाइल को विजुअल स्टूडियो कोड में या डिसेबल कंपाइलऑनसेव के साथ एडिट करते हैं जाता है, तो संपादित ts फ़ाइल को पुन: संपादित नहीं किया जाता है और मेरा वेबपैक असंगत .js फ़ाइल को संसाधित कर रहा है।
प्रोजेक्ट बिल्ड पर दृश्य स्टूडियो में संकलित टाइपस्क्रिप्ट फ़ाइलों को अक्षम करना था। जोड़ना
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
अपने .csproj के संपत्ति समूह में