क्या एंगुलर 2+ से अप्रयुक्त आयात और घोषणाओं को हटाने का एक तरीका है?


139

मुझे अन्य डेवलपर्स से कुछ गड़बड़ कोड लेने का काम सौंपा गया है जो हाल ही में कंपनी छोड़ चुके हैं।

मैं उत्सुकता से पूछ रहा हूं कि क्या विज़ुअल स्टूडियो कोड या अन्य साधनों के कुछ प्लग-इन हैं जो हमें आयात और संदर्भों को जल्दी और प्रभावी ढंग से व्यवस्थित और व्यवस्थित करने में मदद कर सकते हैं?

उदाहरण के लिए, इस तरह के शायद सैकड़ों आयात हैं

import { AutoCompleteModule,InputSwitchModule } from 'primeng/primeng';
import { ListboxModule } from 'primeng/primeng';

इसी तरह परिवर्तित किया जा सकता है

import { AutoCompleteModule,
         InputSwitchModule,
         ListboxModule  } from 'primeng/primeng';

या अन्य कार्य जैसे कि अप्रयुक्त आयात और घोषणाओं को app.module से या पूरी परियोजना के माध्यम से सभी घटकों से स्वचालित रूप से हटा दें?

किसी भी प्रतिक्रिया के लिए धन्यवाद!


मैं भी सोच रहा हूँ कि विशेष रूप से घटकों में बाहरी आयात प्रदर्शन पर एक खींचें हैं।
मार्किडियस

8
stackoverflow.com/a/49697144/3914072 vscode 1.22 Shift + Alt + O - मेरे लिए काम करता है!
रजब शकिरोव

कमांड लाइन (या गिट हुक) से भी किया जा सकता है: npmjs.com/package/organize-imports-cli
thornli

जवाबों:


169

संपादित करें (जैसा कि टिप्पणियों और अन्य लोगों में सुझाया गया है), विज़ुअल स्टूडियो कोड विकसित हुआ है और इस कार्यक्षमता को " डिफ़ॉल्ट रूप से आयात" व्यवस्थित करता है, जिसमें निम्न डिफ़ॉल्ट कीबोर्ड शॉर्टकट हैं :

option+ Shift+ Oमैक के लिए

Alt विंडोज के लिए + Shift +O


मूल उत्तर:

मुझे आशा है कि यह दृश्य स्टूडियो कोड एक्सटेंशन आपकी आवश्यकता को पूरा करेगा: https://marketplace.visualstudio.com/items?itemName=rbbit.typescript-hero

यह निम्नलिखित विशेषताएं प्रदान करता है:

  • अपनी परियोजना या पुस्तकालयों के आयात को अपनी वर्तमान फ़ाइल में जोड़ें
  • कर्सर के नीचे वर्तमान नाम के लिए एक आयात जोड़ें
  • एक कमांड के साथ फ़ाइल के सभी लापता आयात जोड़ें
  • Intellisense जो प्रतीकों का सुझाव देता है और स्वचालित रूप से आपके द्वारा लिखे गए कोड को ठीक करने वाले आवश्यक आयात "लाइट बल्ब फीचर" को जोड़ता है
  • अपने आयातों को क्रमित और व्यवस्थित करें ( अप्रयुक्त को हटा दें )
  • अपने खुले TS / TSX दस्तावेज़ की कोड रूपरेखा देखें
  • जावास्क्रिप्ट के लिए सभी शांत सामान भी! (प्रयोगात्मक चरण हालांकि, नीचे बेहतर विवरण।)

मैक के लिए: control+ option+o

जीत के लिए: Ctrl+ Alt+o


1
मुझे इस ऐड-ऑन को चालू करने के लिए धन्यवाद, यह चट्टानों! जब तक मैं इसे स्थापित करता हूं, तब तक मैं कार्यक्षमता के उस छोटे टुकड़े (ऑटो आयात) की देखभाल के लिए ऑटो-आयात एक्सटेंशन स्थापित करता था। लेकिन टाइपस्क्रिप्ट हीरो स्थापित करने के बाद ... वाह, यह मुझे वह सब कुछ करने की ज़रूरत है, जिसमें आयात विवरणों के भीतर वर्णमाला के क्रम में निर्भरता को छाँटना शामिल है, घटक वर्गों के भीतर उपयोग नहीं होने वाले आयात से छुटकारा पाना, आदि!
मार्किडियस

2
2018 में टीएस हीरो के प्रोजेक्ट मेंटेनर ने कहा है कि वह एक्सटेंशन को बंद कर देगा, क्योंकि यह वीएस कोड में सीधे मुख्य कार्यात्मकताओं के कार्यान्वयन के बाद अप्रचलित हो गया है (अन्य कॉमेंट्स देखें)।
मट्टारौ

2
Alt+Shift+Oआयात को पुन: व्यवस्थित किए बिना कॉल करने का कोई तरीका ?
XCS

लिनक्स के लिए Alt + Shift + O
manuman94

155

विजुअल स्टूडियो कोड रिलीज़ 1.22 के अनुसार यह एक्सटेंशन की आवश्यकता के बिना मुफ्त आता है।

Shift+ Alt+O तुम्हारा ख्याल रखेगा।


1
अच्छा! मैं ctrl + Shift + का उपयोग कर रहा हूं - हमेशा से और अब मैं शॉर्टकट ढूंढ सकता हूं और बदल सकता हूं।
जॉर्जी

मुझे इसे स्थापित करना था, मेरे पास 1.37.1 की स्थापना में नहीं आया
बूढ़ा-भिक्षु

57

यदि आप एक भारी दृश्य स्टूडियो उपयोगकर्ता हैं, तो आप बस अपनी वरीयता सेटिंग खोल सकते हैं और अपनी सेटिंग्स में निम्नलिखित जोड़ सकते हैं।

...
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
  "source.organizeImports": true
}
....

उम्मीद है कि यह मददगार हो सकता है!


3
यह ESLint Prettier प्लगइन के साथ संघर्ष करने लगता है। यह एक-पंक्ति आयात करने की कोशिश कर रहा है, लेकिन ESLint कई लाइनों में टूटने की कोशिश कर रहा है।
रिचर्ड

वही समस्या @Richard के रूप में। एक खुला मुद्दा लगता है - github.com/prettier/prettier-vscode/issues/716
क्रेग

क्या आयातों को क्रमबद्ध रखते हुए अप्रयुक्त आयातों को हटाने को अक्षम करने का एक तरीका है?
सूर्यकुंडसेन

बहुत बढ़िया जवाब। उम्र के लिए यह देख रहे हैं
आमिर

41

अप्रयुक्त आयात, कोड या चर का पता लगाने में सक्षम होने के लिए, सुनिश्चित करें कि आपके पास tsconfig.json फ़ाइल में यह विकल्प हैं

"compilerOptions": {
    "noUnusedLocals": true,
    "noUnusedParameters": true
}

टाइपस्क्रिप्ट कंपाइलर स्थापित है, अगर इसे इसके साथ स्थापित न करें:

npm install -g typescript

और Vcode में स्थापित tslint एक्सटेंशन, यह मेरे लिए काम करता है, लेकिन मुझे सक्षम करने के बाद विशेष रूप से बड़ी परियोजनाओं के लिए CPU उपयोग की वृद्धि की मात्रा पर ध्यान दिया जाता है।

मैं आपके आयातों को व्यवस्थित करने के लिए टाइपस्क्रिप्ट हीरो एक्सटेंशन का उपयोग करके भी पुनः प्राप्त करूंगा ।


41

VSCode v.1.24 और टाइपस्क्रिप्ट v.2.9 के बाद से:

मैक के लिए: option+ Shift+O

जीत के लिए: Alt+ Shift+O


7
कुछ के लिए अधिक महत्वपूर्ण, कमांड है Organize Importsयाeditor.action.organizeImports
pcnate

@ pcnate आयात आयात करते समय अप्रयुक्त आयातों को हटाने को अक्षम करने का एक तरीका है?
सूर्यकुंडसेन

11

इस धागे पर पहले से ही बहुत अच्छे जवाब हैं! मैं इसे पोस्ट करने जा रहा हूं, जो किसी को भी स्वचालित रूप से करने की कोशिश कर रहा है ! पूरे प्रोजेक्ट के लिए अप्रयुक्त आयातों को स्वचालित रूप से हटाने के लिए यह लेख वास्तव में मेरे लिए उपयोगी था।

लेख में लेखक इसे इस तरह समझाता है:

इसमें अकेले निम्नलिखित tslint फ़ाइल बनाएँ

{
  "extends": ["tslint-etc"],
  "rules": {
    "no-unused-declaration": true
  }
}

फिर आयात को ठीक करने के लिए निम्न आदेश चलाएँ:

 tslint --config tslint-imports.json --fix --project .

यह फेंकता है किसी भी अन्य त्रुटियों को ठीक करने पर विचार करें। (मैंने किया)

फिर परियोजना के निर्माण की जाँच करके इसका निर्माण करें:

ng build

या

ng build name_of_project --configuration=production 

अंत: यदि यह सही ढंग से बनाता है, तो आपने आयातों को स्वचालित रूप से हटा दिया है!

नोट: यह केवल अनावश्यक आयात को हटाता है। यह अन्य विशेषताओं को प्रदान नहीं करता है जो वी.एस. कोड पहले उल्लेखित आदेशों में से एक का उपयोग करते समय करता है।


मुझे मिलता है Could not find implementations for the following rules specified in the configuration: no-unused-declaration , इसलिए मुझे लगता है कि यह समाधान अब काम नहीं करता है।
यूसुफ खान

मैं tslint संस्करण का उपयोग कर रहा हूं5.20.1
यूसुफ खान

0

अपने पास जाएं tslint.jsonऔर संपत्ति के मूल्य को बदल no-unused-variableदेंfalse


3
यह ओपी द्वारा पूछे गए सवाल के बिल्कुल विपरीत है। एस / वह अप्रयुक्त चर नहीं करना चाहता है इसलिए no-unused-variableयह सच होना चाहिए। क्या पूछा गया है कि क्या फिक्स (अप्रयुक्त चर को हटाने) स्वचालित रूप से किया जा सकता है, जो पहले से ही उत्तर दिया गया है।
मत्तराऊ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.