簡體   English   中英

在 VS Code 中,如何在 React Node 應用程序中自動導入“斷言”?

[英]In VS Code How Can I Automatically Import "assert" in a React Node App?

在 Visual Studio Code 中,您可以通過將焦點移動到導入的術語,然后使用“快速修復”功能(對我來說是CTRL +. )來自動導入大部分內容。 然后,您將獲得一個選項,讓 VS Code 為您將術語導入添加到文件頂部……除非術語是assert

注意:我相信你需要在你的jsconfig.js中有"checkJs": true才能工作......或者使用 Typescript。)

奇怪的是,“斷言”模塊可用的,作為 Node 本身的一部分! 似乎 VS Code 只是不知道它可用,而且我不確定如何讓它知道。

有什么方法(例如 VS 代碼設置、 jsconfig.json選項等)可以讓它在自動導入時識別assert模塊的存在?

我認為這是一個錯誤,它應該適用於所有內置模塊。


詳細說明何時有效,何時無效。

它可以建議以一種奇怪的方式導入斷言。

我有一個簡單的 JavaScript 項目,帶有jsconfig.json文件

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "checkJs": true
  },
  "exclude": ["node_modules"]
}

正如您提到的"checkJs": true對於獲得所需的 CodeAction (QuickFix) 選項至關重要。

或者您可以在.js文件中添加為第一行

//@ts-check

我的app.js文件很簡單

assert(5 > 7, "Always False");

我收到紅色波浪線,但快速修復列表中沒有導入建議。

如果我為內置模塊添加任何require語句,我會在快速修復列表中獲得導入建議( import 'assert' from module "console" import 'assert' from module "assert"

var zlib = require('zlib');
assert(5 > 7, "Always False");

如果我選擇我得到的進口商品之一

var zlib = require('zlib');
const assert = require('assert');
assert(5 > 7, "Always False");

並在 Node.js 中運行腳本會按預期拋出斷言。

Debugger attached.
Waiting for the debugger to disconnect...
assert.js:374
    throw err;
    ^

AssertionError [ERR_ASSERTION]: Always False
[snip....]
  generatedMessage: false,
  code: 'ERR_ASSERTION',
  actual: false,
  expected: true,
  operator: '=='
}
Process exited with code 1

如果我有一個app.js

var gzip = zlib.createGzip();

我無法快速修復導入 zlib。

自己添加導入使腳本運行。

var zlib = require('zlib');
var gzip = zlib.createGzip();

我想知道哪些模塊可以生成快速修復建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM