এক্সপ্রেস.জেএস পরিবেশে ব্যবহারের জন্য। কোন পরামর্শ?
এক্সপ্রেস.জেএস পরিবেশে ব্যবহারের জন্য। কোন পরামর্শ?
উত্তর:
আপনার অ্যাপ্লিকেশন চালানোর আগে, আপনি কনসোলে এটি করতে পারেন,
export NODE_ENV=production
অথবা আপনি উইন্ডোতে থাকলে আপনি এটি ব্যবহার করে দেখতে পারেন:
SET NODE_ENV=production
অথবা আপনি আপনার অ্যাপ্লিকেশনটি এভাবে চালাতে পারেন:
NODE_ENV=production node app.js
আপনি এটি আপনার জেএস ফাইলে সেট করতে পারেন:
process.env.NODE_ENV = 'production';
তবে আমি এটি আপনার রানটাইম ফাইলে করার পরামর্শ দিচ্ছি না, যেহেতু আপনার সার্ভারে ভিআইএম খোলানো এবং এটি উত্পাদনতে পরিবর্তন করা সহজ নয়। আপনি আপনার ডিরেক্টরিতে একটি কনফিগারেশন.জসন ফাইল তৈরি করতে পারেন এবং আপনার অ্যাপ্লিকেশন চলার সময় এটি এ থেকে পড়ে এবং কনফিগারেশন সেট করে।
process.env.NODE_ENV
অ্যাপ্লিকেশন থেকেই নির্ভরযোগ্যভাবে সেটিংটি হয়ে উঠবে । ড্যানিয়েল নীচে লিঙ্কযুক্ত হিসাবে আপনার পরিবেশের পরিবর্তনশীল সঠিকভাবে সেট করুন।
NODE_ENV
দ্বিতীয় উদাহরণ হিসাবে ( NODE_ENV=production node app.js
) যেমন আপনি অ্যাপ্লিকেশনটি চালান ততবার আমি স্পষ্টভাবে সেটিংয়ের অনুরাগী । আপনি নিজের লোকালটিকে NODE_ENV
পিছনে সেট করতে ভুলে যাওয়া ইভেন্টে আপনি সম্ভবত ভবিষ্যতের কিছু চুল টানা থেকে নিজেকে বাঁচাতে পারেন development
।
cross-env NODE_ENV=production
উইন্ডোজ এবং লিনাক্স / ম্যাক উপর কাজ করে।
NODE_ENV=production forever app.js
কাজ করা উচিত।
প্যাকেজ.জসনে:
{
...
"scripts": {
"start": "NODE_ENV=production node ./app"
}
...
}
তারপরে টার্মিনালে চালান:
npm start
NODE_ENV=production
package.json অনেক অর্থে দেখা যায় না। npm start
উন্নয়ন চলমান এটি উত্পাদন চালাতে হবে। আপনি নিজের কোডটি এমনভাবে লিখতে পারেন যেন এটি সর্বদা উত্পাদন, যেহেতু আপনি সর্বদা সেভাবে চালান। আমি এটি করার এক কারণ হ'ল অন্য মডিউলগুলি (যেমন এক্সপ্রেস) কে উত্পাদন মোডে চালাতে বাধ্য করা। তারা যদি কখনও পরিবর্তন না করে তবে পরিবেশের পরিবর্তনগুলি কেন মোটেই ব্যবহার করবেন?
.env
এখানে এখনও কেউ উল্লেখ করা হয়নি? .env
আপনার অ্যাপ্লিকেশন রুটে একটি ফাইল তৈরি করুন require('dotenv').config()
এবং তারপরে মানগুলি পড়ুন। সহজেই পরিবর্তিত, সহজে পঠন, ক্রস প্ল্যাটফর্ম।
"mode": "production"
জন্য .env
ফাইলটিতে সেটিং কাজ করেছে।
export NODE_ENV=production
খারাপ সমাধান, এটি পুনরায় চালু হওয়ার পরে অদৃশ্য হয়ে যায়।
যদি আপনি সেই পরিবর্তনশীল সম্পর্কে আর চিন্তা করতে না চান - এটি এই ফাইলে যুক্ত করুন:
/etc/environment
রফতানি বাক্য গঠন ব্যবহার করবেন না, কেবল লিখুন (কিছু লাইনে ইতিমধ্যে সেখানে থাকলে নতুন লাইনে):
NODE_ENV=production
এটি পুনরায় চালু করার পরে কাজ করে। আপনাকে আর কোনও জায়গায় রফতানি NODE_ENV = প্রোডাকশন কমান্ডটি পুনরায় প্রবেশ করতে হবে না এবং কেবল নিজের পছন্দ মতো কোনও নোড ব্যবহার করতে হবে - চিরকাল, দুপুর ২ ...
হিরকুর জন্য:
heroku config:set NODE_ENV="production"
যা আসলে ডিফল্ট।
NODE_ENV=production gulp bundle-production-app
উত্পাদন প্রস্তুত স্ক্রিপ্ট বান্ডিল করতে ব্যবহার করি , সার্ভারে NODE_ENV সার্ভারের পরিবেশে এবং ডেভ মেশিনে এটি নেই। কিছু মেশিনে এটি স্বপ্নদোষ হয় যদি এটি সেট না করা থাকে এবং আপনি এটি সর্বদা সেট করে রাখবেন বলে আশা করেন । কারও কারও মধ্যে আপনি এটি না রাখার প্রত্যাশা করেন, সুতরাং আপনি যোগ করবেন না। যাইহোক, ইউআই করার সময় আমি এটি পরিষ্কার করে দিচ্ছি যে এটি যদি ডেভলপমেন্ট মোডে থাকে তবে এটি চালু বা বন্ধ থাকলে আপনার কোনও প্রশ্নই আসে না। যদি NODE_ENV হয়! == উত্পাদন এটি আপনার মুখের মধ্যে রয়েছে যে আপনি অন্য মোডে রয়েছেন, তাই দুঃস্বপ্নের কিছু নেই। সব পরিষ্কার, সব ভাল।
/etc/environment
এবং রান export NODE_ENV=production
?
আপনি উইন্ডোজ, ম্যাক বা লিনাক্সে আপনার স্ক্রিপ্টগুলি ক্রস-এনভিভ প্যাকেজ ইনস্টল করছেন কিনা তা চিন্তা করার দরকার নেই । তারপরে আপনি সহজেই আপনার স্ক্রিপ্টগুলি ব্যবহার করতে পারেন:
"scripts": {
"start-dev": "cross-env NODE_ENV=development nodemon --exec babel-node -- src/index.js",
"start-prod": "cross-env NODE_ENV=production nodemon --exec babel-node -- src/index.js"
}
এই প্যাকেজটির বিকাশকারীদের জন্য প্রচুর পরিমাণে প্রপস।
npm install --save-dev cross-env
heroku config:set NODE_ENV="production"
NODE_ENV=production
হেরোকু নোড.জেএস ডিফল্টে এখন ডিফল্ট।
উইন্ডোজ পাওয়ারশেলের জন্য এই কমান্ডটি ব্যবহার করুন
$env:NODE_ENV="production" ; node app.js
ওএসএক্স-এ আমি export NODE_ENV=development
আপনার ~/.bash_profile
এবং / অথবা ~/.bashrc
এবং / অথবা এ যুক্ত করার পরামর্শ দেব ~/.profile
।
ব্যক্তিগতভাবে আমি আমার এ প্রবেশটি যুক্ত করি ~/.bashrc
এবং তারপরে ~/.bash_profile
~/.profile
সেই ফাইলটির বিষয়বস্তু আমদানি করি, সুতরাং এটি পরিবেশের সাথে জুড়েই সুসংগত।
এই সংযোজনগুলি করার পরে, সেটিংস বাছাই করতে আপনার টার্মিনালটি পুনরায় চালু করতে ভুলবেন না।
আপনি যদি উইন্ডোতে থাকেন। প্রথমে ডান ফোল্ডারে আপনার সেমিডিটি খুলুন
set node_env={your env name here}
এন্টার টিপুন এবং তারপরে আপনি আপনার নোডটি শুরু করতে পারেন
node app.js
এটি আপনার এনএভিভি সেটিংস দিয়ে শুরু হবে
একাধিক পরিবেশের জন্য আপনার উত্তরগুলির আগে সমস্তগুলি প্রয়োজন (NODE_ENV প্যারামিটার এবং এটি রফতানি করুন), তবে আমি কোনও কিছু ইনস্টল না করে খুব সাধারণ পদ্ধতির ব্যবহার করি। আপনার প্যাকেজ.জসনে আপনার প্রয়োজন প্রতিটি এনভির জন্য একটি স্ক্রিপ্ট রেখে দিন:
...
"scripts": {
"start-dev": "export NODE_ENV=dev && ts-node-dev --respawn --transpileOnly ./src/app.ts",
"start-prod": "export NODE_ENV=prod && ts-node-dev --respawn --transpileOnly ./src/app.ts"
}
...
তারপরে, অ্যাপ্লিকেশনটি npm start
ব্যবহারের পরিবর্তে শুরু করতেnpm run script-prod
।
কোডটিতে আপনি বর্তমান পরিবেশটি দিয়ে অ্যাক্সেস করতে পারেন process.env.NODE_ENV
।
Voila।
উইন্ডোজ সিএমডি -> set NODE_ENV=production
উইন্ডোজ পাওয়ারশেল -> $env:NODE_ENV="production"
ম্যাক -> export NODE_ENV=production
ড্যানিয়েলের একটি দুর্দান্ত উত্তর রয়েছে যা সঠিক স্থাপনার (সেট এবং ভুলে যাওয়া) প্রক্রিয়াটির জন্য আরও ভাল পদ্ধতির।
এক্সপ্রেস ব্যবহারকারীদের জন্য। আপনি গ্রান্ট-এক্সপ্রেস-সার্ভার ব্যবহার করতে পারেন যা দুর্দান্ত fant https://www.npmjs.org/package/grunt-express-server
এটি এমন একটি সুযোগ হতে পারে যে আপনি সিক্যুয়ালাইজ অবজেক্টের দুটি উদাহরণ তৈরি করেছেন
উদাহরণস্বরূপ: var con1 = new Sequelize (); var con2 = নতুন সিক্যুইলাইজ ();
এছাড়াও একই ত্রুটি ঘটবে