在VS Code中,如何在React Node App中自动导入“断言”?

问题描述

在Visual Studio Code中,您可以通过将焦点移至导入的术语,然后使用“快速修复”功能(对我来说CTRL + .)来自动导入大多数内容。然后,您可以选择让VS Code为您添加该术语的导入到您文件的顶部...除非该术语是assert

注意:,我相信您需要在"checkJs": true中加入jsconfig.js才能正常工作...否则将使用打字稿。)

奇怪的是,“断言”模块 是作为Node本身的一部分提供的!似乎VS Code并不知道可用,而且我不确定如何使它知道。

在进行自动导入时,是否有任何方法(例如VS Code设置,jsconfig.json选项等)使之识别assert模块的存在? / p>

解决方法

我认为这是一个错误,应该适用于所有内置模块。


何时有效以及何时无效的详细说明。

它可以建议以一种奇怪的方式导入断言。

我有一个带有jsconfig.json文件的简单JavaScript项目,

{
  "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();

我想知道哪些模块可以生成快速修复建议。