নোডে কঠোর মোডে চাপ দেওয়ার কোনও উপায়?


141

এই উত্তরটি কোথাও খুঁজে পাওয়া যায়নি, তবে আমি বেশ কয়েকটি মেলিং তালিকা পেয়েছি যেখানে এটি নিয়ে আলোচনা করা হয়েছিল, এগুলি বরং পুরানো এবং এটি প্রয়োগ করা হয়েছে কি না তা আমার কোনও ধারণা নেই।

নোড.জেজে কঠোর মোড ব্যবহার করে কি কোনওভাবে বাধ্য করা যায়?

লেখা "use strict";আমার সব .js ফাইলের মধ্যে ... ভাল, আমি এটা কঠোর মোড ব্যবহারের বদলে অতিরিক্ত boilerplate, যোগ করতে বাধ্য করা হচ্ছে বলে চিহ্নিত করেন।

উত্তর:


211

লয়েডের মতে আপনি এখন স্থান দিতে পারেন

"use strict";

নোড> = 0.10.7 এ আপনার ফাইলের শীর্ষে , তবে আপনি যদি নিজের পুরো অ্যাপটি কঠোরভাবে চালিত করতে চান ( বাহ্যিক মডিউলগুলি সহ ) আপনি এটি করতে পারেন

নোড - ইউজ_স্ট্রিক্ট


eek: fs.js: 1497 ফাংশন ইমিট () nt nt সিনট্যাক্স এরর: কঠোর মোড কোডে, ফাংশনগুলি কেবলমাত্র শীর্ষ স্তরে বা তত্ক্ষণাত অন্য ফাংশনের মধ্যেই ঘোষণা করা যায়।
— j03m

1
ওহ ওহ, সুতরাং আপনি কঠোরভাবে চাপ দিলে আপনি ফাইল সিস্টেমটি ব্যবহার করতে পারবেন না? আপনি নোডের কোন সংস্করণ ব্যবহার করছেন, আমি v0.8.12 এ পাচ্ছি না
— চাদ সায়রা

1
'v0.8.16' <--- হুম বিজোড়। আমাকে যাচাই করতে দিন।
— j03 মি

13
নোড v0.9.x এবং আরও নতুনতে --use_strictপ্রত্যাশা অনুযায়ী পতাকাটি কাজ করে।
— টুটলনেট

21
নোট যা --use_strictসম্পূর্ণ প্রয়োগের জন্য কঠোর মোড সেট করবে, সমস্ত এক্সটেনেরাল মডিউলগুলি অন্তর্ভুক্ত করবে, যা আপনার নিয়ন্ত্রণের বাইরে of
— লুইস

59

নোডে 0.10.7 আপনি "use strict";আপনার ফাইলের শীর্ষে রেখে ফাইল স্তরে কঠোর মোড প্রয়োগ করতে পারেন । অবশেষে!


25

আপনি ব্যবহার করতে পারেন

https://npmjs.org/package/use-strict

যে একবার লিখুন

require('use-strict')

বা এমনকি একটি পদক্ষেপ এগিয়ে নিয়ে যেতে এবং ব্যবহার করুন

https://npmjs.org/package/node-strict

দয়া করে নোট করুন যে use-strictঅনুরোধের পরে প্রয়োজনীয় প্রতিটি মডিউলটিতে আরও কঠোরভাবে চালু হবে।

আপনি যদি আক্রমণাত্মক না হয়ে পছন্দ করেন তবে আমি অন্য একটি মডিউল লিখেছি

https://www.npmjs.org/package/strict-mode

যা কেবল আপনার প্যাকেজে কঠোর মোড সক্ষম করে। আমি মনে করি এটি আরও একটি "ডু হোয়াট আই মিন" সমাধান।


20

"use strict";প্রযোজ্য ফাইলগুলির শীর্ষে কেবল ব্যবহার করুন । আমি জানি এটি বয়লারপ্লেট কাটাতে চেষ্টা করার লোভনীয়, তবে এটি জাভাস্ক্রিপ্টে করা যায় না। নোড পতাকা যা নাম দেওয়া হবে না [1]

  • নথিভুক্ত, এবং নোড নিজেই অসমর্থিত।
  • এটি অপসারণের প্রস্তাবগুলির মুখোমুখি হয়েছে ।
  • নোড-নির্দিষ্ট এবং অন্য কোনও জাভাস্ক্রিপ্ট ইঞ্জিনে সমর্থিত নয়।
  • অযৌক্তিক।
  • এটি একই নয়"use strict"; কারণ এটি একটি সংকলক গ্লোবাল, এবং সমস্ত গ্লোবালগুলির মতো আপনিও সম্ভবত অন্য কারও কোডকে প্রতিকূলভাবে প্রভাবিত করছেন।
  • সবকিছু বাগের সাপেক্ষে। কঠোর মোড এবং স্লোপি-মোড বিভিন্ন বাগের সাথে সম্পর্কিত হতে পারে। এর অর্থ, কিছু কঠোর মোড বাগগুলি কঠোর মোডের থেকে স্বতন্ত্র

অন্য কিছু প্রোগ্রামার মনে করতে পারে -wALLএটি এর মতো বা এর মতো, এটি নয়। এটি স্ট্যান্ডার্ডযুক্ত কার্যকারিতা যা আপনি একটি অ্যাড-হক ফ্যাশনে সক্ষম করছেন (মান ভঙ্গ করে) এবং প্রত্যেকের সংকলক শব্দার্থক পরিবর্তন করে।

পাদটিকা

  1. নোড পতাকা হয় --use_strict। এটি ব্যবহার করবেন না ।

1
আপনি কোথায় আমাকে বলতে পারেন যে এটি "নোড দ্বারা অসমর্থিত"? এটি কি নথিবদ্ধ নয় তা থেকে কেবল অনুমান করা হয়?
— পুশকিন

অধিকাংশ ক্ষেত্রে. এবং এটি মোটেও নোড জিনিস নয়, এটি v8 এর মধ্য দিয়ে যেতে হবে।
— ইভান ক্যারল

ধন্যবাদ! আমি ভাবলাম কেন নোড ক্লিপ ডক্সে এটি খুঁজে পেলাম না ।
— গ্যালেন লং

18

আপনি শেবাং ইন্টারপ্রেটারের নির্দেশিকায় কঠোর পতাকাও সরবরাহ করতে পারেন।

#!/usr/bin/env node --use_strict

তবে বর্তমানে (কমপক্ষে v0.9.x পূর্ববর্তী) এটি @ চাদ-বিজ্ঞানের উত্তর আলোচনার মন্তব্যে বর্ণিত একই সমস্যায় ভুগছে।


1
envআপনাকে এরকম পরামিতিগুলি পাস করার অনুমতি দেয় না, তাই না?
— লেটারিয়ান

ওএসএক্স ১০.৯.৪-এ আমার জন্য কাজ করে।
— জন লেহম্যান

1
হ্যাঁ - এখনও একটি ভয়াবহ প্রয়োগকারী কনভেনশনকে উদাহরণ দেয়, যে দুটি কোডের প্রতিযোগিতামূলক লাইন যা কোনও ফাইলের শীর্ষে থাকতে হবে।
— আআআআআআআআআআআআআআআআআচ

7
সাবধান, envওএসএক্সের মতো অতিরিক্ত পরামিতিগুলির সাথে কাজ করবে, তবে লিনাক্সে নয়।
— ইরানদিআর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.