আমি যখন এই ত্রুটিটি পাওয়ার চেয়ে আয়নিক 3 প্রকল্পটি "আয়নিক পরিবেশন" কমান্ড ব্যবহার করে চালাচ্ছি:
উত্তর:
যারা গুগল থেকে এই প্রশ্নে অবতরণ করেন তাদের জন্য একটি অ-কৌনিক সাধারণ উত্তরের জন্য:
যতবারই আপনি এই ত্রুটির মুখোমুখি হন সম্ভবত এটি একটি মেমরি ফাঁস বা নোড <= 10 এবং নোড> 10 মেমরি পরিচালনা করার মধ্যে পার্থক্যের কারণে। সাধারণত নোডে বরাদ্দ করা মেমরিটি কেবল আপনার প্রোগ্রামটি চালানোর অনুমতি দেয় তবে প্রকৃত সমস্যাটি আসলে সমাধান করতে পারে না এবং নোড প্রক্রিয়া দ্বারা ব্যবহৃত মেমরিটি এখনও আপনার বরাদ্দ করা নতুন মেমরির চেয়ে বেশি হতে পারে। আমি যখন আপনার নোড প্রক্রিয়াতে মেমরির ব্যবহারের প্রোফাইল তৈরি করতে পরামর্শ দেব যখন এটি নোড> 10 এ চলতে বা আপডেট করা শুরু করে।
আমার একটি স্মৃতি ফুটো ছিল। নোডে মেমরি ফাঁস ডিবাগিং সম্পর্কিত একটি দুর্দান্ত নিবন্ধ এখানে ।
এটি বলেছিল, স্মৃতি বাড়াতে, টার্মিনালে যেখানে আপনি আপনার নোড প্রক্রিয়াটি চালাচ্ছেন:
export NODE_OPTIONS="--max-old-space-size=8192"
যেখানে মানগুলি max-old-space-sizeহতে পারে: [2048, 4096, 8192, 16384]ইত্যাদি
[আপডেট] আরও স্পষ্টতার জন্য আরও উদাহরণ:
export NODE_OPTIONS="--max-old-space-size=5120" #increase to 5gb
export NODE_OPTIONS="--max-old-space-size=6144" #increase to 6gb
export NODE_OPTIONS="--max-old-space-size=7168" #increase to 7gb
export NODE_OPTIONS="--max-old-space-size=8192" #increase to 8gb
# and so on...
# formula:
export NODE_OPTIONS="--max-old-space-size=(X * 1024)" #increase to Xgb
# Note: it doesn't have to be multiples of 1024.
# max-old-space-size can be any number of memory megabytes(MB) you have available.
next.jsজন্য দ্রুত রিফ্রেশ বৈশিষ্ট্যটি সহ আমাদের অ্যাপটিকে ক্রাশ করা শুরু করে।
Centos সার্ভার 7 এ একই সমস্যা, তবে এটি আমার সমস্যার সমাধান করেছে:
node --max-old-space-size=X node_modules/@angular/cli/bin/ng build --prod
X = (2048 or 4096 or 8192 o..)স্মৃতির মূল্য কোথায়
ng serveএবং এর একটি অংশে একটি বড় .js ফাইলটি মেমোরিতে লোড করার দরকার পড়ে reference scriptsangular.json
আমার ক্ষেত্রে, নোডজেস, সংস্করণ 12.10.0 ইনস্টল করতে এই সমস্যাটি সমাধান করুন
ফোরামের একটি পুরানো বার্তায় নির্দেশিত এই সমাধানটি ব্যবহার করে দেখুন: https://forum.ionicframework.com/t/3-7-0-ios-build-with-prod-not-king/107061/24
খোলা node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js
এর থেকে প্রথম লাইনটি পরিবর্তন করুন:
#!/usr/bin/env node
প্রতি
#!/usr/bin/env node --max-old-space-size=4096
1024 এবং 2048 মানগুলি চেষ্টা করে দেখুন, তবে তুলনামূলকভাবে বড় অ্যাপের জন্য আপনার 4096 এর প্রয়োজন হতে পারে।
আমি ng buildভিজ্যুয়াল স্টুডিও কোডে কমান্ড কার্যকর করার সময় আমি একই ত্রুটি পেয়েছি । আমি নিম্নলিখিত ক্রমানুসারে উইন্ডোজ কমান্ড লাইনে একই জিনিসটি সম্পাদন করি তবে আমি সফলভাবে তৈরি করতে পারি।
ধাপ 1.
set NODE_OPTIONS=--max_old_space_size=4096
ধাপ ২.
ng build
আমি ভিজ্যুয়াল স্টুডিও কোডে নিম্নলিখিত বিবৃতিগুলি সম্পাদন করার সময় আমি একই ত্রুটি বার্তা পেয়েছি। উইন্ডোজ কমান্ড লাইনে যখন আমি একই জিনিসটি কার্যকর করি তখন আমি সফলভাবে তৈরি করতে পারি।
npm install -g increase-memory-limit
increase-memory-limit
set NODE_OPTIONS=--max_old_space_size=4096
ng build -c deploy --build-optimizer --aot --prod --sourceMap
node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build --baseHref=/baseUrl/ --prod=true
কিছু কারণে উপরের সমস্ত উত্তর সত্যই আমার পক্ষে কার্যকর হয়নি, আমি আমার সমস্যাটি সমাধানের জন্য নিম্নলিখিতগুলি করেছি:
node_modulesফোল্ডারটি মুছতে হয়েছিলnpm installনোড - ম্যাক্স_ল্ড_স্পেস_সাইজ = 4096 ./ নোড_মডিউলস / @angular/cli/bin/ng বিল্ড - প্রোড - বিল্ড-অপ্টিমাইজার
পরামিতি যুক্ত করা --build-optimizer আমার ক্ষেত্রে সমস্যাটি সমাধান করেছে।
হালনাগাদ:
আমি নিশ্চিত না কেন কেবল - বিল্ড-অপ্টিমাইজার যুক্ত করার ফলে সমস্যাটি সমাধান হয় তবে কৌনিক ডক্স অনুসারে এটি এওটি সক্ষম করে ব্যবহার করা উচিত, সুতরাং আপডেট হওয়া কমান্ডটি নীচের মতো হওয়া উচিত
--build-optimizer=true --aot=true
আপনার প্রকল্প ফোল্ডারে এই কমান্ডটি চালান। বিল্ডের পরিবর্তে পরিবেশন ব্যবহার করুন
node --max_old_space_size=8000 node_modules/@angular/cli/bin/ng serve --prod --port=4202
লাইনটি প্রতিস্থাপন করুন
"start": "ng serve -o --port 4300 --configuration=en" সঙ্গে
"start": "node --max_old_space_size=5096 node_modules/@angular/cli/bin/ng serve -o --port 4300 --configuration=en"
বিঃদ্রঃ:
পোর্ট - 4300 আপনি কোন পোর্টটি নির্বাচন করেন তার উপর ধ্রুবক নির্ভর করে না।
--max_old_space_size = 5096 খুব ধ্রুবক নয়; 1024,2048,4096 ইত্যাদি কোনও মান
আমার ক্ষেত্রে এটি একটি পুনরাবৃত্তি যা সমস্ত স্মৃতি ব্যবহার করার জন্য প্রতিক্রিয়া সৃষ্টি করেছিল।
আমি যখন আমার কোডটি সংশোধন করছিলাম এবং এটি লক্ষ্য করি নি তখন এটি হয়েছিল।
const SumComponent = () => {
return (
<>
<SumComponent />
</>
)
}
অন্যান্য নোড অ্যাপ্লিকেশনগুলিতে এটির মতো দেখতে পাওয়া যায়:
const someFunction = () => {
...
someFunction();
...
}
SumComponentরয়েছে SumComponent(যার মধ্যে একটি SumComponentরয়েছে SumComponent...)
আমার জন্য এটি ফায়ারবেস প্যাকেজ নিয়ে সমস্যা ছিল।
আপনার প্যাকেজ.জসনের জন্য কেবল "@ ফায়ারবেস / ডাটাবেস" যুক্ত করুন: "0.2.1", নোড_মডিউলগুলি এবং কার্যগুলি পুনরায় ইনস্টল করুন।
আমি বিদ্যমান নোড মডিউলটি মুছে ফেলেছি এবং আমার সমস্যা সমাধানের জন্য নীচের কমান্ডগুলি চালিত করেছি
npm install -all
npm audit fix
আর একটি অ-কৌণিক উত্তর (এডাব্লুএস এম্প্লিফায় একটি প্রতিক্রিয়া অ্যাপ্লিকেশন তৈরি করতে আমি একই সমস্যার মুখোমুখি ছিলাম)।
ইমানুয়েল দ্বারা উল্লিখিত হিসাবে মনে হচ্ছে এটি নোড ভি 10 বনাম নোড ভি 12 দ্বারা মেমরির যেভাবে পরিচালনা করা হয় তার পার্থক্য থেকে।
আমি কোনও লাভ না করে স্মৃতি বাড়ানোর চেষ্টা করেছি। তবে নোড ভি 12 ব্যবহার করে এটি করেছে।
আপনি এখানে কীভাবে nvm use $VERSION_NODE_12আপনার বিল্ড সেটিংসে যুক্ত করতে পারেন তা এখানে @atlesp দ্বারা ব্যাখ্যা হিসাবে https://github.com/aws-amplify/amplify-console/issues/440#issuecomment-602626451

আমার জন্য, সমস্যাটির একটি অতিরিক্ত node_modulesফোল্ডার ছিল যা আমি নামকরণ করেছি node_modules_oldএবং npm installএকটি তাজা উত্পন্ন করার জন্য একটি চালাচ্ছি node_modules। কোনওভাবে বিল্ডটি অবশ্যই node_modules_oldফোল্ডারটি বাছাই করে চলেছে , তাই আমি node_modules_oldসমস্যাটি সমাধানের জন্য ডিরেক্টরি থেকে সরে এসেছি।
আপনার নোড সংস্করণটি দেখুন:
$ node -v
যদি এটির 10.1.1 কিছু হয় তবে আপনাকে নীচের কমান্ডগুলির মাধ্যমে আপনার মূল স্তরের নোড সংস্করণ আপডেট করতে হবে
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
$ source ~/.nvm/nvm.sh
$ nvm ls
$ nvm install 12.18.1
একবার হয়ে গেলে আপনার টার্মিনাল বা ভিজ্যুয়াল স্টুডিও পুনরায় চালু করুন।
এটি কাজ 100 $
আয়নিক ব্যবহারকারী pls জন্য আপনার প্যাকেজ.জসনে নীচের কোড যুক্ত করুন
"ionic:build": "node --max-old-space-size=16384 ./node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js build",
app-scriptsআপনি যদি অ্যান্ড্রয়েড বা স্ক্রিপ্টটি ionic cordova build androidকীভাবে তৈরি করেন?
আপনার ফোল্ডারের নাম পরীক্ষা করুন। যদি আপনার ফোল্ডারের নাম ফাঁক করে থাকে, এই ধরণের সমস্যা উত্পন্ন হবে। স্থান ছাড়াই নাম পরিবর্তন করুন। আশা করি এটি কার্যকর হবে
যদি ভিএসকোডে রিঅ্যাক্ট অ্যাপ্লিকেশনটি চলমান অবস্থায় ঘটে থাকে তবে দয়া করে আপনার প্রোপাইপগুলি পরীক্ষা করুন, অপরিজ্ঞাত প্রপাইটিপস একই সমস্যাটিকে বাড়ে।
#! / usr / bin / env নোড - ম্যাক্স-ওল্ড-স্পেস-সাইজ = 4096 আইওনিক-অ্যাপ-স্ক্রিপ্ট.জেএস ডিন্টের কাজ
সংশোধন করা হচ্ছে
নোড_মডিউলস / .বিন / আয়নিক-অ্যাপ-স্ক্রিপ্টস সিএমডি
যোগ করে:
@IF বিদ্যমান "% ~ dp0 \ node.exe" ("% ~ dp0 \ node.exe" "% ~ dp0 .. @ আইওনিক \ অ্যাপ-স্ক্রিপ্টস \ বিন \ আয়নিক-অ্যাপ্লিকেশন-স্ক্রিপ্টস.জেএস"% *) ELSE ( @ এসটল্কল @ এসইটি পাঠ্য =% পাঠ্যক্রম:; জেএস; =;% নোড - ম্যাক্স_ল্ড_স্পেস_সাইজ = 4096 "% ~ dp0 .. @ আইওনিক \ অ্যাপ-স্ক্রিপ্টস \ বিন \ আয়নিক-অ্যাপ্লিকেশন-স্ক্রিপ্টস।"% *)
বাগদত্তা কাজ করেছেন
কখনও কখনও সরলতা সাফল্যের মূল চাবিকাঠি। জন্য অনুসন্ধান করুন while (i <= 10000) {}বৃদ্ধি ছাড়া iআপনার কোডে;)
আমি আমার প্রকল্পের জন্য নোডেজ, টাইপস্ক্রিপ্ট, সুতা, এনপিএম ইত্যাদির মতো আমার সমস্ত লাইব্রেরি আপডেট করার পরে এই সমস্যাটি চলে গেছে।
নোড 12 থেকে নোড 14 এ আপডেট করা আমার জন্য সমস্যার সমাধান করেছে