如何让VSCode识别当前的包Javascript导入?

insrf1ej  于 2023-02-21  发布在  Java
关注(0)|答案(2)|浏览(254)

VSCode智能感知非常棒,当我导入一个javascript函数时,比如

import func from './file';

vs代码将给予一个有用的对话框,其中包含jsdoc的参数,这是因为我使用的是相对文件路径。
然而,如果我正在使用我当前的包,让我们将其命名为package.json中列出的“public”,并尝试使用其绝对路径引用一个文件,则智能感知不会拾取该文件。

// import the same file as above, but using absolute path
// public is the name of the current npm package
import func from 'public/subfolder/file';

理智不再出现。
这是一个错误还是配置问题?

pnwntuvh

pnwntuvh1#

步骤1
创建一个jsconfig.json文件来指示vs代码中的JavaScript项目,只需转到vs代码的底部并单击绿色灯泡图标。
它将要求您创建jsconfig.json。创建jsconfig.json文件,该文件将包含以下代码。

//jsconfig.json
{
 // See https://go.microsoft.com/fwlink/?LinkId=759670
 // for the documentation about the jsconfig.json format
 "compilerOptions": {
 "target": "es6",
 "module": "commonjs",
 "allowSyntheticDefaultImports": true
 },
 "exclude": [
 "node_modules",
 "bower_components",
 "jspm_packages",
 "tmp",
 "temp"
 ]
}

Step2

全局安装类型,用于下载节点模块(如express,mongoose,angular等)的TypeScript定义文件(类型)。
npm install typings --global
TypeScript定义文件是用TypeScript编写的,为函数及其参数提供VS智能感知体验。让我们按如下所示安装express的类型:
typings insall dt~express --global
让我们尝试一下express的编码体验,您将看到express的强大intelliSense。

zzlelutf

zzlelutf2#

溶液

  • 4种不同的方式 *::

在您的jsconfig.jsoncompilerOptions::

  • (建议解决方案)*
  • 设置**"moduleResolution": "node",**
  • (其他解决办法)*
  • 使用**"module": "CommonJS"**,--不使用"module": "ES6"或其他;
  • "target": "XXX"是什么并不重要)
      • 删除**(注解掉)"module": "XXX"和**"target": "XXX"**
  • 直接在导入中指定路径(Op希望避免)
  • 例如:import XXX from '../node_modules/core-decorators/index.js'

参考

[vscode无法正确自动导入节点模块包] https://github.com/microsoft/TypeScript/issues/30472

相关问题