VSCODE Javascript——如何隐式导入库

7

我希望在引用库时隐藏"import",即本地/全局导入,并正常使用库的内容。

是否可以实现,或者已经实现了?

我在插件加载器中使用这些代码,因此不需要进行导入。它只是一个提示查看注释的工具。

我正在使用VSCODE及其内置的JavaScript。

例子:

import { mc } from "./Libary/Game/Player";

mc.runcmd('kill u m')

想要使用:

mc.runcmd('kill u m')

你还可以查看评论和函数类型等内容。


1
请注意,"Java"和"JavaScript"仅在名称上有关联 - Alexander Nied
3个回答

4

我认为目前这是不可实现的,也认为这不应该被实现,因为:

  1. 导入与JavaScript语言中模块的工作方式相关

  2. 它可能会引起许多问题。

例如,想象一下你有两个游戏,像Game1Game2,它们都有一个mc方法:

import { mc } from "./Libary/Game1/Player";

import { mc } from "./Libary/Game2/Player";

VScode应该如何决定在这里导入什么?

但是,当您使用普通的JavaScript导入时,只需更改名称导入即可,如下所示:

import { mc as mc1 } from "./Libary/Game1/Player";
import { mc as mc2 } from "./Libary/Game2/Player";

1
全局定义的变量在JS生态系统中很常见-测试框架Jest就是一个流行的例子,当执行.test.ts文件时,像describetest这样的函数会在全局加载。通过使用jsconfig.json文件,Jest的用户可以指定Jest的全局函数在他们的测试文件中可用。 问题包括“我在插件加载器中使用这些代码”的细节。这个设置与Jest类似,因为像mc这样的全局变量会在脚本运行之前被加载。问题的用例是有效的,而jsconfig.json是VS Code的流行方法。 - David Shortman

0
通过在.d.ts文件中声明库的API,并在项目根目录设置jsconfig.json,VSCode将自动将这些定义包含在全局范围内。
以下是一个具有mc.runcmd功能使用的示例存储库:https://github.dev/david-shortman/vscode-javascript-how-to-implicit-import-library 有关声明文件的更多信息- https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html 有关jsconfig.json的更多信息- https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#using-tsconfigjson-or-jsconfigjson

0

在 vscode 中不可能实现这个功能,这个功能是在 IntelliJ IDEA 的某个版本中引入的,但他们不得不在两周内回滚到以前的版本。它给程序员带来了太多麻烦。现在很难将两个程序分开,除此之外,每个新项目的构建文件大小都在不断增加。
如果你仍然想这样做,请使用 @David shortman 分享的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接