[英]How can I tell if a particular module is a CommonJS module or an ES6 module?
[英]How do I disable: [js] File is a CommonJS module; it may be converted to an ES6 module
這是 Visual Studio Code 中添加的一項新功能,稱為“建議代碼操作”。 “建議代碼操作”在 JavaScript 和 TypeScript 中默認啟用。
您可以通過在您的用戶/工作區設置中設置: "typescript.suggestionActions.enabled": false
或"javascript.suggestionActions.enabled": false
來禁用它們。 文檔可以在這里找到。
(圖片由Yusuf Yaşar提供。)
對於使用帶有coc.nvim 的Vim 的任何人,您可以通過在:CocConfig
對象中添加相同的內容來進行相同的更改:
"javascript.suggestionActions.enabled": false
如果您之前沒有向:CocConfig
添加任何設置,那么您需要確保將上述設置包裝在一個 JSON 對象中:
{
"javascript.suggestionActions.enabled": false
}
實際上,這個煩人的建議來自 TypeScript。
因此,要關閉此建議,您可以修改 TypeScript 的源代碼,編譯它,然后告訴 vscode 使用您的 TypeScript 分支。
作為一個快速而骯臟的黑客,只需刪除與ts.Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module
相關的邏輯,然后按照 TypeScript 的 README 中的說明編譯項目。
編譯將失敗,因為刪除相關邏輯會導致一些函數變得不使用,然后您只需刪除那些未使用的函數定義並重新編譯項目( gulp clean && gulp local
)。
成功編譯 TypeScript 的 fork 后,將用戶 settings.json 更改為指向您的 vscode fork:
"typescript.tsdk": "/path/to/your/fork/of/TypeScript/built/local",
完畢。
重新啟動你的 vscode,煩人的建議就消失了。
您可以檢查此提交以查看需要修改哪些 TypeScript 源文件。
警告:修改既快速又臟,使用它們的風險自負。 如果你發現任何錯誤,你可以刪除 tsdk 配置,切換回 vscode 的內置 TypeScript。
對於使用帶有 Native LSP 和nvim-lspconfig
來設置語言服務器的任何人,您可以通過在 tsserver 設置中的某處添加以下內容來禁用建議:
require('lspconfig').tsserver.setup {
init_options = {
preferences = {
disableSuggestions = true
}
}
}
如果您在 Next js 中遇到此錯誤,請嘗試以下代碼。 1- Next.js 包含“next/babel”預設到您的應用程序,其中包括編譯 React 應用程序和服務器端代碼所需的一切。 2- 打開你的 .eslintrc.json
{ "extends" : "next/babel" }
3-但是如果你想擴展默認的 Babel 配置,它也是可能的。 https://nextjs.org/docs/advanced-features/customizing-babel-config
如果你的項目是"type": "module"
並且你需要在其中有一個 CommonJS 文件,例如配置 ESLint(在撰寫本文時它不支持 ESM),那么只需將其從*.js
重命名為 *.js 即可*.cjs
(或從*.ts
到*.cts
,如果合適的話),並且建議將 go 消失。 大約一年前,此修復程序與 TypeScript 4.5.1 一起提供。
也許你沒有“功能(請求,響應)”試試看,它對我有用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.