vscode আমদানি কনসোল = প্রয়োজনীয় ("কনসোল"); স্বয়ংক্রিয়ভাবে


145
import console = require("console");

console.<< আমি টাইপ করি। এবং উপরে ভিএসকোডে স্বয়ংক্রিয়ভাবে আমদানি হয়ে যায়। কেউ কীভাবে তা অক্ষম করবেন জানেন?

(আমি ধরে নিলাম এটি আমার এক্সটেনশনগুলির মধ্যে একটি Pro সম্ভবত প্রিয়াটিয়ার।)

সম্পাদনা করুন: এটি কেবল প্রতিক্রিয়া টাইপস্ক্রিপ্ট পরিবেশে ঘটে। প্রতিক্রিয়া ছাড়াই টাইপস্ক্রিপ্ট না।


এর সাথে কোন ভাগ্য? আমি একই সমস্যাটি নিয়ে
চলেছি

উত্তরে কর্মক্ষেত্রের পাশাপাশি মনে হয় এটি সর্বশেষ আপডেটের সাথে প্রবর্তিত ভিএসকোডের একটি বাগ। সম্পর্কিত ত্রুটি-প্রতিবেদনটি এখানে পূর্ণ: github.com/Mic Microsoft
issues

1
হিজড়া / জেএস নাইট প্লাগইন VSCode জন্য 1.36+ এই সংশোধন করা হয়েছে
অ্যান্ড্রু লি

উত্তর:


126

দাবি অস্বীকার: এটি "সমাধান" হিসাবে বিবেচনা করা উচিত নয় তবে এটি সবচেয়ে সহজ / দ্রুততম।

এই উত্তরটি ধরে নিচ্ছে যে আপনি ভিএসকোড ব্যবহার করছেন। অন্যান্য আইডিই একই রকম হওয়া উচিত।

  1. টাইপিং শুরু করুন console
  2. প্রবেশ বা টাইপ করুন ., IntelliSense যোগ করার অনুমতি দেয়import console = require("console");
  3. Ctrl + ক্লিক (বা এফ 12, বা সিএমডি + ম্যাকোজে ক্লিক করুন) ক্লিক করুন require("console")
  4. এই কোডটি মন্তব্য করুন:
declare module "console" {
    export = console;
}

9
যদি এটি রেডডিট হত তবে আমি আপনাকে এটির জন্য স্বর্ণ দিচ্ছি। ধন্যবাদ :)
FearMediocrity

5
সুন্দরভাবে কাজ করে। এটি সিএমডি + হওয়া উচিত "console"যদিও ক্লিক করুন , তবে এটি বিশদ। ধন্যবাদ!
Looooii

যদি এফ 12 বা সিএমডি + ক্লিক করে সমস্যা হয় তবে "কনসোল"
-তে

2
এটি নোড_মডিউলগুলির মধ্যে একটি ফাইল সম্পাদনা করছে যার অর্থ 'ফিক্স' আবার এনটিএম ইনস্টল করার পরে পুনরায় সেট করা হবে। আমি এটি দ্রুত সমাধান
পেয়েছি তবে

যাঁরা কোনও ডিক্লেয়ারেশন ফাইলটি সংশোধন করতে চান না তাদের পক্ষে, টিএস / জেএস নাইটলি প্লাগইন এটি ভিএসকোড 1.36+
এন্ড্রু লি

31

আমি এটির অভিজ্ঞতাও পেয়েছি এটি মনে হয় ভিএসকোডে অটো আমদানি বৈশিষ্ট্যটিতে কোনও সমস্যা। সমস্ত এক্সটেনশান অক্ষম করে না বলে মনে হয় এটি খুব দূরে চলে যায়।

কাজের হিসাবে আপনি সেটিংসে অটোম্পোর্টগুলি অক্ষম করতে পারেন।

আপনি যদি জাভাস্ক্রিপ্ট ব্যবহার করেন

"জাভাস্ক্রিপ্ট.সুজেস্ট.আউটো ইম্পোর্টস": মিথ্যা

আপনি যদি টাইপস্ক্রিপ্ট ব্যবহার করেন

"টাইপসক্রিপ্ট.সুগস্ট.আউটো ইমপোর্টস": মিথ্যা

এখানে চিত্র বর্ণনা লিখুন

সম্পাদনা: ত্রুটিযুক্ত অটোপোর্টটি নির্ভরতা গাছের নিচে প্যাকেজে এই কোডের কারণে ঘটে

declare module "console" {
    export = console;
}

প্যাকেজটি আপনার স্থানীয় নোড_মডিউল ডিরেক্টরিতে বা বিশ্বব্যাপী ইনস্টল করা কোনও রেফারেন্সড প্যাকেজে অবস্থিত।

  1. এর জন্য আপনার স্থানীয় নোড_মডিউলগুলি অনুসন্ধান করুন declare module "console"
  2. যদি আপনি এটি কোনও স্থানীয় প্যাকেজে সন্ধান npm list [packageName]করেন তবে প্যাকেজ.জে জোনসে থাকা কোন প্যাকেজটিতে কনসোল কোড রয়েছে তা প্যাকেজের উপর নির্ভরশীল তা নির্ধারণ করতে চালান ।

আপনি যদি নিজের স্থানীয় নোড_মডিউলগুলিতে কোড খুঁজে না পান তবে আপনিও পারেন

  1. প্যাকেজ.জসনে একের পর এক প্যাকেজগুলি বাদ দিন

  2. আপনার প্রকল্পের প্যাকেজগুলির দ্বারা উল্লেখ করা যেতে পারে যা বিশ্বব্যাপী ইনস্টল করা মডিউলগুলিতে কনসোল কোডটি সন্ধান করুন

% USERPROFILE% \ AppData \ রোমিং \ npm \ নোড_মডিউলগুলি% USERPROFILE% \ অ্যাপডাটা \ স্থানীয় \ মাইক্রোসফ্ট \ টাইপস্ক্রিপ্ট

আমি জানি এটি কোনও সরাসরি সমাধান নয় তবে আমি আশা করি এটি সাহায্য করবে, আমার ক্ষেত্রে আমার কাছে প্রতিক্রিয়া-স্থানীয়-কোপাইলট -> রিম্রাফ -> নোডের একটি কনসোল কোড ছিল যার মধ্যে এটি ছিল। প্রতিক্রিয়া-স্থানীয়-কপাইলট সরানো সমস্যার সমাধান করে solved


8
হ্যাঁ এর ফলে আর কোনও অটো আমদানির কাজ হয় না। আমি এই বৈশিষ্ট্যটি পছন্দ করি এবং এটি উত্তর হিসাবে গ্রহণ করি না ...: - ডি (যদিও ধন্যবাদ!) এর জন্য আরও একটি সমাধান থাকতে হবে। আমি এখনও খুঁজছি।
22:48

আমি জানতে পেরেছি যে আপনি যখন নতুন-প্রকল্প তৈরি-রিয়েট-অ্যাপটি আমার অ্যাপ্লিকেশন - স্ক্রিপ্টস-সংস্করণ = রিঅ্যাক্ট-স্ক্রিপ্ট-টিএস সহ কোনও নতুন প্রকল্প তৈরি করেন তখন তা ঘটে না তাই এটি অবশ্যই কোনওভাবে ওয়ার্কস্পেস সেটিংসের সাথে সংযুক্ত থাকতে হবে।
ড্রাগনসুল

আমি আরও কিছু গবেষণা করেছি, সম্পাদিত উত্তরটি দেখুন, আশা করি আপনি এটি আপনার প্রকল্পে খুঁজে পেয়েছেন!
কেভিডি

1
হ্যাঁ সত্যই এটি কাজ করেছে। আমি ভাবছি, এটি কোনও ভিএসকোড বাগ বা এই প্যাকেজগুলির নির্মাতাদের কাছ থেকে? আমার জন্য এটি @ টাইপ / নোড এবং @ টাইপ / রিএ্যাক্ট-ডোমে ছিল। আপনাকে ধন্যবাদ :-)
ড্রাগনসুল

4
~/Library/Caches/ফোল্ডারের ভিতরে থাকা "টাইপসক্রিপ্ট / 3.২ / নোড_মডিউলস / টাইপ / নোড / ইনডেক্স.ড.টিস" এর ভিতরে ত্রুটিযুক্ত কোডটি পাওয়া গেছে । আমি ম্যাক এ আছি যেহেতু এটি আমার ক্যাশিং ওয়ার্কস্পেসে রয়েছে আমি কেবল আসল কোডটি সরিয়ে ফেলেছি: `` `ল্যাং-জেএস মডিউল" কনসোল "ঘোষণা করে = এক্সপোর্ট = কনসোল; It `` `এবং এটি কাজ করে!
jcperez-ch

17

আমি খুঁজে পেয়েছি সবচেয়ে মার্জিত সমাধান হ'ল console.d.tsআপনার প্রকল্পের কোথাও ডামি ফাইল তৈরি করা :

declare module 'console' {
    export = typeof import("console");
}

এটি স্বয়ংক্রিয় আমদানি রোধ করবে।

ক্রেডিট: https://github.com/Mic Microsoft/TypeScript/issues/30471#issuecomment-474963436


এটি একটি মার্জিত সমাধান যা চেক ইন করা যায় এবং একাধিক ওয়ার্কস্পেস এবং ডিভাইস জুড়ে কাজ করবে। ধন্যবাদ!
phsource

4
আমি কেন পাব "রফতানীর কার্যভারের অভিব্যক্তিটি অবশ্যই একটি পরিবেষ্টিত প্রসঙ্গের মধ্যে একটি সনাক্তকারী বা যোগ্য নাম হতে হবে? (2714)"? আমার tsconfig.json এর কিছু সেটিংয়ের সাথে সম্পর্কিত হতে পারে?
মেহমেট এন। ইয়ারার

হ্যাঁ এটি হতে পারে ... আপনি আমার সেটিংসটি এখানে পরীক্ষা করতে পারেন: github.com/codechecks/monorepo/blob/master/tsconfig.json এটি কনসোল.ড.টিস ফাইলের সাথে কাজ করে
ক্রিজিসটফ ক্যাকজর

17

Inোকানোর জন্য যদি আপনি একটি স্নিপেট যোগ করেন console.log এবং পরিবর্তে এটি ব্যবহার করেন তবে "কনসোল" এর কোনও স্বয়ংক্রিয়-আমদানি হবে না

https://code.visualstudio.com/docs/editor/userdefinedsnippets#_create-your-own-snippets

এখানে আমার স্নিপেট:

{
    "Print to console": {
        "prefix": "cl",
        "body": [
            "console.log('$1');",
        ],
        "description": "Log output to console"
    }
}

5
যদিও এটি কোনও সমাধান নয়, এটি চতুর এবং যখন আপনি প্যাকেজটি মুছে ফেলতে না পারেন যা সমস্যার সৃষ্টি করছে, তখন বেশিরভাগ ভোটের উত্তরে বলা হয়েছে it
টিবিউরসিও

আমি @tibuurcio এর সাথে একমত চতুর পরিশ্রম, কিন্তু আমি এটি সমাধান হিসাবে গ্রহণ করতে পারি না ...
ড্রাগনসুল

কাজ হয়নি। কনসোলটি লেখার পরে এটি স্বয়ংক্রিয়ভাবে আমদানি করে তারপরে আমি "টিপুন।" এটি স্বয়ংক্রিয়ভাবে আমদানি করে
মিঃঘাখর

1
@ মিঃ-গামখর যদি আপনি উপরের স্নিপেটটি ব্যবহার করতে চান তবে আপনাকে কেবল "সিএল" লিখতে হবে বা যা আপনি "উপসর্গ" লিখেছেন তা লিখতে হবে। অটোম্পোর্টের আচরণ এড়াতে সক্ষম হওয়ার জন্য এটি "কনসোল" ছাড়া আর কিছু হওয়া দরকার।
জর্জিও

9

আপনি যদি আমার পছন্দ করেন "ক্লি", আপনি স্নিপেটে একাধিক উপসর্গ ব্যবহার করতে পারেন :)

{
    "Print to console": {
        "prefix": ["cl","co","con","cons","conso","consol","console", "console.l","console.lo","console.log"],
        "body": [
            "console.log($1);",
        ],
        "description": "Log output to console"
    }   
}

1
আসল উত্তরটি অলস :)
ফলস

এটি আমার পক্ষে সেরা সমাধান, কারণ আপনার অভ্যন্তরীণ প্যাকেজগুলি সম্পাদনা করার দরকার নেই
হ্যারিসন

5

এটি থেকে রোধ করার একটি উপায় হ'ল আপনার প্রকল্পে স্বয়ংক্রিয়ভাবে আমদানি করা প্রকারের সীমাটি সীমাবদ্ধ করতে আপনার tsconfig.json ফাইলটি সংশোধন করা।

আমারও একই সমস্যা ছিল এবং আমি যুক্ত করে এটি ঠিক করেছি:

types: []

আমার tsconfig.json ফাইলের মধ্যে। এটি যা করে তা হ'ল প্রকারের @types/কনফিগারেশনে থাকা সমস্ত নোড প্যাকেজগুলি স্বয়ংক্রিয়ভাবে আমদানি করা থেকে টাইপস্ক্রিপ্ট (এবং এক্সটেনশন ভিএসকোড) দ্বারা অক্ষম করা হয়। আপনি যদি এই ধরণের ব্যবহার করে স্পষ্টভাবে কোনও প্যাকেজ আমদানি করেন তবে এটি টিএসকে এই ধরণের সংজ্ঞাটি আমদানি করতে বাধা দেয় না।

আমার নির্দিষ্ট ক্ষেত্রে, consoleসংজ্ঞাটি এসেছিল @types/node, যা স্টোরবুকের নির্ভরতা হিসাবে প্রকল্পে আমদানি করা হয়েছিল। তবে, আমার প্রকল্পটি একটি ওয়েবপ্যাক প্রকল্প ছিল, এটি ব্রাউজারে চালানোর উদ্দেশ্যে, সুতরাং আমার উত্স কোডে নোড.জেএস টাইপগুলি আমদানি করার কোনও অর্থ হয়নি। ব্রাউজারে আপনি যে ধরণের বেস ব্যবহার করতে চান সেটি ডোম টাইপ, নোড প্রকার নয়।

আপনার প্রকল্পের উপর নির্ভর করে, আপনাকে স্পষ্টভাবে বেস টাইপ প্যাকেজগুলির সেটগুলিতে প্যারামিটার ( types: ["dom", "react"]এবং তাই) টাইপ করতে হবে । যাইহোক, আমার ক্ষেত্রে এটি অপ্রয়োজনীয় হিসাবে প্রমাণিত হয়েছে, আমার প্রকল্পটি খালি তালিকার সাথে ঠিক সূক্ষ্ম সংকলন করতে সক্ষম হয়েছিল। এবং ভিএসকোডের স্বয়ংক্রিয়ভাবে 'কনসোল' আমদানির প্রবণতা পুরোপুরি চলে গেছে বলে মনে হয়; আমি এখনও পর্যন্ত অন্য কোনও খারাপ প্রভাব লক্ষ্য করিনি।

Tsconfig.json এ টাইপ করার ধরণের আরও তথ্য এখানে: https://www.typescriptlang.org.org/docs/handbook/tsconfig-json.html

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