typescript - Cum dezactivez: [js] Fișierul este un modul CommonJS; acesta poate fi convertit într-un modul ES6


Următorul este ceea ce vreau să dezactivez:

Nu îl pot găsi în setări.
Ajutorul este apreciat, deoarece acest lucru este cu adevărat enervant.

Răspuns #1

Aceasta este o caracteristică nouă adăugată în Visual Studio Code numită „Acțiuni de cod sugestive”. „Acțiunile de cod sugestive” sunt activate implicit în JavaScript și TypeScript.

Le puteți dezactiva setând: "typescript.suggestionActions.enabled": false sau "javascript.suggestionActions.enabled": false în setările utilizatorului/workspace-ului. Documentația poate fi găsită aici.

Răspunsul #2

Pentru oricine folosește Vim cu coc.nvim, poți face aceeași modificare adăugând același lucru în obiectul :CocConfig:

"javascript.suggestionActions.enabled": false

Dacă nu ați adăugat până acum niciun setare la :CocConfig, atunci trebuie să vă asigurați că setarea de mai sus este încapsulată într-un obiect JSON:

{
    "javascript.suggestionActions.enabled": false
}

Răspunsul #3

Pentru oricine folosește Neovim cu LSP nativ și nvim-lspconfig pentru configurarea serverelor de limbaj, puteți dezactiva sugestiile adăugând asta undeva în configurația dvs. pentru tsserver:

require('lspconfig').tsserver.setup({
    init_options = {
        preferences = {
            disableSuggestions = true,
        },
    },
})

De asemenea, poți folosi pluginul nvim-lsp-ts-utils pentru a filtra acest mesaj de diagnostic specific, menținând în același timp sugestiile active, adăugând acest lucru undeva în configurația ta tsserver:

require('lspconfig').tsserver.setup({
    on_attach = function(client, bufnr)
        require('nvim-lsp-ts-utils').setup({
            filter_out_diagnostics_by_code = { 80001 },
        })
        require('nvim-lsp-ts-utils').setup_client(client)
    end,
})

Răspunsul #4

Alertă! Această abordare ar putea fi prea mult pentru utilizatorii VSCode care iubesc asistența inteligentă la codare. Folosiți-o ca un ajutor simplu și rapid, împreună cu alte utilitare de linting și testare.


Controlul prezenței mesajului respectiv se află în Setări => Extensii => TypeScript. (TypeScript !!! :P)

Așa cum se arată în captura de ecran, am căutat în Setări cu cuvântul cheie „validate”, apoi am făcut clic pe TypeScript. Este primul element.

Răspunsul #5

Dacă proiectul tău este "type": "module" și ai nevoie să ai un fișier CommonJS în el, de exemplu pentru a configura ESLint (care nu suportă ESM la momentul scrierii acestui text), atunci pur și simplu redenumește-l din *.js în *.cjs (sau din *.ts în *.cts, dacă este cazul), și sugestia va dispărea. Remediul pentru acest lucru a fost lansat cu TypeScript 4.5.1 acum aproximativ un an.

Răspunsul #6

De fapt, această sugestie enervantă provine de la TypeScript.

Astfel, pentru a dezactiva această sugestie, poți modifica codul sursă al TypeScript, să îl compilezi, apoi să îi spui vscode să folosească fork-ul tău de TypeScript.

Ca un truc rapid și murdar, pur și simplu elimină logica legată de ts.Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module, apoi compilează proiectul urmând instrucțiunile din README-ul TypeScript.

Compilarea va eșua deoarece eliminarea logicii aferente face ca unele funcții să devină neutilizate, apoi trebuie doar să elimini acele definiții de funcții neutilizate și să recompilezi proiectul (gulp clean && gulp local).

După ce îți compilezi cu succes fork-ul TypeScript, schimbă apoi fișierul tău user settings.json pentru a indica către fork-ul tău vscode:

"typescript.tsdk": "/path/to/your/fork/of/TypeScript/built/local",

Gata.

Repornește-ți vscode, și sugestia enervantă a dispărut.

Poți verifica acest commit pentru a vedea care fișiere sursă TypeScript trebuie modificate.

Atenție: modificarea este rapidă și murdară, folosiți-o pe propriul risc. Dacă găsiți ceva în neregulă, puteți pur și simplu să eliminați configurația tsdk pentru a reveni la TypeScript-ul integrat în vscode.