"NODE_ENV" কোনও অভ্যন্তরীণ বা বাহ্যিক কমান্ড, অপারেবল কমান্ড বা ব্যাচ ফাইল হিসাবে স্বীকৃত নয়


207

আমি একটি Node.js অ্যাপ্লিকেশনটির জন্য একটি পরিবেশ সেটআপ করার চেষ্টা করছি। তবে আমি প্রতিবারই এই ত্রুটি পাচ্ছি।

"NODE_ENV" কোনও অভ্যন্তরীণ বা বাহ্যিক কমান্ড, অপারেবল কমান্ড বা ব্যাচ ফাইল হিসাবে স্বীকৃত নয়।

এর অর্থ কী এবং আমি কীভাবে এই সমস্যাটি সমাধান করতে পারি?

আমি উইন্ডোজ ব্যবহার করছি এবং চেষ্টা করেছি set NODE_ENV=developmentকিন্তু ভাগ্য হয়নি।

উত্তর:


271

মনে হচ্ছে আপনার ত্রুটিটি এই জাতীয় কিছু চালানোর চেষ্টা থেকে এসেছে (যা লিনাক্সে কাজ করে)

NODE_ENV=development node foo.js

উইন্ডোজ সমতুল্য হবে

SET NODE_ENV=development
node foo.js

একই কমান্ড শেল চলমান। আপনি উল্লেখ করেছেন যে NODE_ENV কাজ করে না, তবে আপনি কখন / কখন এটি সম্পাদন করেছেন তা পরিষ্কার ছিল না।


ধন্যবাদ জিম, আমি এটি কমান্ড লাইনে ব্যবহার করেছি এবং প্যাকেজ.জসন ফাইল থেকে সরিয়েছি। কিন্তু আমি তার পরে অন্য মধ্যে দৌড়ে। নোড মডিউলগুলি উইন্ডো দ্বারা পুরোপুরি সমর্থিত নয় বলে মনে হচ্ছে। বিসিক্রিপ এবং জিপ দিয়ে অন্য একটি ত্রুটি পেয়েছে।
ক্রোজারো

এখানে বিশেষজ্ঞ নয়, তবে বিসিআরপিট উইন্ডোগুলির জন্য সমর্থন দেখায়, তবে ওপেনএসএসএল প্রয়োজন, এটি নিশ্চিত কিনা তা নিশ্চিত নয়। যদি তা না হয় তবে দৃশ্যপট কিছুটা পরিবর্তিত হওয়ায় একটি নতুন প্রশ্ন পোস্ট করতে পারে।
জিম ও'নিল

5
এটি প্রকৃতপক্ষে কাজ করার সময়, আমি মনে করি @ সুসান-স্ট্যাকটি সঠিক উত্তর দিয়েছে - একটি ক্রস প্ল্যাটফর্ম সমাধান এবং উইন্ডোতে কাজ করার জন্য লাইনটি পরিবর্তন না করে অন্য ওএস ভেঙে দেয়।
justabuzz

সুসানের উত্তরকে অগ্রাহ্য করা হয়েছে - আসল প্রতিক্রিয়াটি পূর্বে অনুমান করা মডিউলটির পূর্বনির্ধারিত হয়েছিল
জিম ও'নিল

250

আমি এর জন্য একটি মডিউল লিখেছি: win-node-env

এটি এমন একটি তৈরি করে NODE_ENV.cmdযা NODE_ENVপরিবেশের পরিবর্তনশীল নির্ধারণ করে এবং বাকী কমান্ড এবং এর আরগগুলি সহ একটি শিশু প্রক্রিয়া তৈরি করে।

কেবল এটি ইনস্টল করুন (বিশ্বব্যাপী), এবং আপনার এনপিএম স্ক্রিপ্ট কমান্ডগুলি চালান, এটি তাদের স্বয়ংক্রিয়ভাবে কাজ করে।

npm install -g win-node-env

13
এটি কাজ করে! এবং আমাকে কোনও কমান্ড পরিবর্তন করতে হয়নি। এই উত্তর।
অভিমন্যু পাঠানিয়া

3
এটিই সবচেয়ে সহজ
আসল

1
আমি কীভাবে আপনার স্ক্রিপ্টে কাস্টম ভেরিয়েবল যুক্ত করতে পারি?
আইভান-আইভরি

1
@ আইভান-আইভরি প্রথম ভেরিয়েবল (অর্থাত্ NODE_ENV) একই থাকতে হবে (অন্যথায় এটি সম্পূর্ণ পৃথক স্ক্রিপ্ট হতে হবে)। এবং এর পরে কাস্টম ভেরিয়েবল যুক্ত করার জন্য (যেমন NODE_ENV = দেব SOME_VAR = ভাল) প্রসেস.আরজিভি থেকে আরও ভেরিয়েবল পার্স করার জন্য আমাকে স্ক্রিপ্টটির যুক্তি সংশোধন করতে হবে। আমি এটি সম্পর্কে ভাবছিলাম কিন্তু সময় নেই। একটি টান অনুরোধ করতে নির্দ্বিধায়।
laggingreflex

1
আমার পক্ষে কাজ করেনি। আমি পাচ্ছি:> NODE_ENV = বিকাশ নোড_মডিউলগুলি / .বিন / নোডমোন --ignore ./public/tones/ --exec বাবেল-নোড সার্ভার / সূচি। বা ব্যাচ ফাইল।
রড লিমা

173

&কমান্ডের মধ্যে উইন্ডোজ ব্যবহার করতে হবে। ভালো লেগেছে,

  "scripts": {
    "start": "SET NODE_ENV=development & nodemon app/app.js",
  }

7
কমান্ডটি কাজ করে তবে এর মান NODE_ENVহবে 'বিকাশ' ('t' এবং '&' এর মধ্যে সাদা স্থানটি এতে থাকবে NODE_ENV)
roroinpho21

1
@ roroinpho21 ঠিক কী বলেছেন। কাজ .trim()করার জন্য এখন আমাকে মূল্য দিতে হবে process.env.NODE_ENV == 'production'। যাইহোক কোনও অননিলারে এড়াতে চান?
ফ্লাইনে

যে লোকেরা এটি কাজ করতে পারেনি, "test-unit": "SET NODE_ENV=test & mocha --require co-mocha 'test.js'" ভুল "test-unit": "SET NODE_ENV=test & mocha --require co-mocha test.js" সত্যআপনার ' ' চারপাশের জেএস ফাইলটি
সেরহাট টার্কম্যান

আপনি যদি এনডিএম চালানোর চেষ্টা করে প্রডাকশন মোডকে উত্পাদনে সেট করতে চান তবে এটি ঠিক কী করবে।
জেসন

90
  1. npm install "cross-env" মডিউল।
  2. হিসাবে কোড পরিবর্তন করুন cross-env NODE_ENV=development node foo.js। তাহলে আপনি এই মত চালাতে পারেন npm run build

10
দয়া cross-envকরে নির্ভরতাগুলিতে অন্তর্ভুক্ত করতে ভুলবেন নাpackage.json
আমিনাঃ নুরাইনি

1
ক্রস-এনভির সেরা উত্তর!
উইলিয়ান লোপস

গ্রন্থাগারটি এখানে রয়েছে: github.com/kentcdodds/cross-env - এবং সেই পৃষ্ঠাটি বলছে যে ডিডডিপেন্ডেন্সে ক্রস-ডেভ অন্তর্ভুক্ত করা হবে npm install --save-dev cross-env; 'env' is not recognized as an internal or external commandএনপিএম স্ক্রিপ্ট যখন বলেছিল তখন এটি ত্রুটির সাথেও সহায়তা করে env VARNAME=varvalue && ...(কেবল এনভটি সরিয়ে ফেলুন এবং এর পরিবর্তে ক্রস-এনভিটি সন্নিবেশ করুন)। বিকাশকারীদের বিশ্বব্যাপী কিছু ইনস্টল করার বা বিভিন্ন প্ল্যাটফর্মের জন্য আলাদা এনপিএম স্ক্রিপ্টগুলির দরকার নেই!
মার্কাস

47

ব্যবহারের জয়, নোড-env ব্যবহার জন্য এটি শুধু আপনার কমান্ড নিচে চালানো cmdবা power shellবা git bash:

npm install -g win-node-env

এর পরে সবকিছু লিনাক্সের মতো।


2
আমি এই পদ্ধতিটি আরও ভাল পছন্দ করি কারণ এটি উইন্ডোতে কাজ করার জন্য কোডটি সংশোধন করা এড়িয়ে চলে
মিকি পুরি

1
হ্যাঁ. আমি মনে করি এটি সবচেয়ে উপযুক্ত উত্তর। আমি এই পদ্ধতির পছন্দ।
সানি সুলতান

প্রিয় @ জেফ্রি নিলকসন ক্যারিয়া, আপনার সুন্দর মন্তব্যের জন্য ধন্যবাদ, আশা করি এটি আপনাকে সহায়তা করবে ❤️🌹
আমেরেলিকাএ

26
set NODE_ENV=production & nodemon app/app.js

NODE_ENV এর শেষে একটি স্থান থাকবে :

process.env.NODE_ENV == 'production'; //false
process.env.NODE_ENV == 'production '; //true

এখানে একটি মন্তব্যে উল্লিখিত হিসাবে পরিবর্তে এটি ব্যবহার করুন:

NODE_ENV=production&& nodemon app/app.js

কি হবে NODE_ENV="production"?
TheFrost

আমার মনে নেই, তবে উত্তরটি উত্তর ছাড়াই না: আমি দেখতে পাচ্ছি যে আমি সুসান-স্ট্যাকের দেওয়া উত্তরকে অগ্রাহ্য করেছি। আমি সত্যিই দুঃখিত।
TheFrost

আমি ওয়েবপ্যাক কনফিগারেশনে একটি ট্রিম () যুক্ত করেছি: `প্লাগইনস: [নতুন ওয়েবপ্যাক.ডাইফাইনপ্লাগিন ({" প্রসেস.ইনভি ": {নোডE_ENV: JSON.stringify (process.env.NODE_ENV.trim ())}})],`
লি কমস্টক

একক &এবং ডাবল মধ্যে পার্থক্য কি &&? উভয়ই আমার পক্ষে কাজ করে বলে মনে হচ্ছে।
thepogrammer

13

উইন্ডোজ সামঞ্জস্য করার জন্য আপনার স্ক্রিপ্ট পরিবর্তন করা একটি রাজকীয় ব্যথা। উপযুক্ত উইন্ডোজ অনুবাদগুলি বের করার চেষ্টা করা এবং 2 সেট স্ক্রিপ্টগুলি বজায় রাখা আপনার জীবনযাত্রার কোনও উপায় নয়।

উইন্ডোজে ব্যাশ ব্যবহারের জন্য এনপিএম কনফিগার করা অনেক সহজ এবং আপনার স্ক্রিপ্টগুলি যেমন চলবে তেমন।

সহজভাবে চালান npm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"। আপনার মেশিনের জন্য বাশ এক্সিকিউটেবলের পথটি সঠিক কিনা তা নিশ্চিত করুন। পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে সম্ভবত টার্মিনালের একটি নতুন উদাহরণ শুরু করতে হবে।

নীচের স্ক্রিনশটটি সুবিধার চিত্রিত করে।

  1. এনপিএম ইআরআর! শুরুতে স্ক্রিপ্ট চালানোর চেষ্টা করার সময়।
  2. উইন্ডোজ ব্যবহারের জন্য স্ক্রিপ্ট পরিবর্তিত হয়েছে তবে রিটার্ন বার্তাটি দেখায় না।
  3. ব্যাশ ব্যবহারের জন্য এনএমপি কনফিগারেশন আপডেট করার পরে, স্ক্রিপ্টটি যথাযথ বার্তাটি চালায় এবং ফিরে আসে।

উইন্ডোজে যেমন চলছে তেমন এনপিএম স্ক্রিপ্ট পাওয়া


7

যারা গিট বাশ ব্যবহার করে এবং এতে সমস্যা রয়েছে তাদের জন্য npm run <script>,

স্ক্রিপ্টগুলি চালাতে গিট ব্যাশ ব্যবহারের জন্য কেবল এনপিএম সেট করুন

npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe" (আপনার ইনস্টলেশন অনুসারে পাথ পরিবর্তন করুন)

এবং তারপরে এনপিএম গিট বাশের সাথে স্ক্রিপ্টগুলি চালাবে, সুতরাং এই জাতীয় ব্যবহারগুলি NODE_ENV=সঠিকভাবে কাজ করবে।



2

উইন্ডোজের জন্য গিট ব্যাশ খুলুন এবং চেষ্টা করুন

NODE_ENV=production node app.js


1
এটি সরাসরি ব্যবহার করার সময় এটি গিট বাশে (পুদিনা) কাজ করে। তবে যখন আমি একই কমান্ডটি চালনা করি, তখন আমি npm <scripts_entry>বিভিন্ন ফ্রেসিংয়ের সাথে সমতুল্য অর্থ সহ একটি ত্রুটি পাই: এটি এনভিরু ভার নামকে এক্সিকিউটেবল হিসাবে বিবেচনা করে।
আন্দ্রে মিখায়লোভ - লোলমাস

2
@ অ্যান্ড্রেমিখায়লোভ-লোলমাস npm run <script>কমান্ডগুলি চালানোর জন্য উইন্ডোজ সিএমডি ডিফল্ট হিসাবে ব্যবহার করে। আপনি এটি গিট ব্যাশ ব্যবহার করতে সেট করতে পারেন। npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"এবং তারপরে npm runস্ক্রিপ্টগুলি চালাতে গিট ব্যাশ ব্যবহার করবে।
ব্যবহারকারী 3790180

1

ওখানে বেশিরভাগ উত্তর আমাকে সাহায্য করেনি ..

যা আমাকে সাহায্য করেছিল NODE_ENV=production&& nodemon app/app.js

স্থান নোট করুন। শুভকামনা।


1

যদি অন্য কেউ এখানে এসে আমার মতো ত্রুটির সমাধানের চেষ্টা করে:

'env' is not recognized as an internal or external command

আমার এটির কারণটি হ'ল আমি ম্যাক ডেভলপমেন্ট মেশিন থেকে একটি কৌণিক সমাধানটি একটি উইন্ডোজ 10 ডেস্কটপে স্থানান্তরিত করেছিলাম। এভাবেই সমাধান করেছি।

  1. চালান npm install --save-dev cross-env

  2. আমার প্যাকেজ.জসন ফাইলের মধ্যে যান এবং সমস্ত স্ক্রিপ্টের রেফারেন্স থেকে এতে পরিবর্তন env <whatever>করুনcross-env <whatever>

তারপরে আমার কমান্ডগুলির মত: npm run start:some_random_environment_varএখন উইন্ডোজ 10 এ সূক্ষ্মভাবে চালান।


উইন্ডোজ ব্যবহারকারীদের জন্য কেবল বাশে স্যুইচ করার জন্য কিছুটা মুশকিল, বিশেষত যখন বাকীগুলি কেবল কাজ করে। এটি আমার জন্য কার্যকর একটি ভাল সমাধান।
ফুজবাবাএলএল


0

উইন্ডোজের জন্য আপনি এটি পছন্দ করতে পারেন

"scripts": {
    "start:prod" : "SET NODE_ENV=production & nodemon app.js",
    "start:dev" : "SET NODE_ENV=development & nodemon app.js"
},
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.