Visual studio code “什么是”呢;“主要”;用于语言扩展的package.json中

Visual studio code “什么是”呢;“主要”;用于语言扩展的package.json中,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,所以我已经为VS代码(repo-find)开发了一个语言支持扩展。我遇到了大量的bug(对于那些只想突出显示某些单词的人来说,文档并没有那么好)。我现在有很多问题,但找不到任何关于main的问题,主要是package.json文件的main条目 接下来是问题: 我知道,main为文件指定了一个目录。 那个文件是做什么的 我已经浏览了几个不同的扩展,试图找出 我知道它是做什么的,但是我注意到目录路径都开始了 使用“/out/…”,即使没有调用 out。甚至还有一个标有out的目录。那么,什么是ou

所以我已经为VS代码(repo-find)开发了一个语言支持扩展。我遇到了大量的bug(对于那些只想突出显示某些单词的人来说,文档并没有那么好)。我现在有很多问题,但找不到任何关于
main
的问题,主要是
package.json
文件的
main
条目

接下来是问题:

  • 我知道,
    main
    为文件指定了一个目录。 那个文件是做什么的

  • 我已经浏览了几个不同的扩展,试图找出 我知道它是做什么的,但是我注意到目录路径都开始了 使用
    “/out/…”
    ,即使没有调用
    out
    。甚至还有一个标有
    out
    的目录。那么,什么是
    out

  • 我使用了Yeoman扩展生成器,它没有包含
    main
    文件或
    out
    目录。分机应该有这些吗?我把事情搞砸了吗

  • 如果你有任何问题,请告诉我。谢谢

    编辑:我忘了添加一个问题:


    我关心
    main
    的主要原因是我试图使用
    activationEvents
    字段,而VS代码表示必须指定
    activationEvent
    main
    。在这种情况下,
    main
    实际上需要做什么?

    main
    没有指定目录,而是指定包含扩展代码的文件(至少是像
    激活
    功能这样的主代码)。你必须在某个地方实现你可以通过
    activationEvents
    激活的东西,对吗?如果有index.js文件或用于解析文件名的本地package.json文件,您甚至可以指定一个文件夹。我自己还没试过。使用文件名更容易

    在这里,您必须记住指定从已安装的扩展名中看到的代码文件。当您有一个TS项目时,在执行扩展之前,您的代码将被传输到JS。这不是强制性的,但这些传输文件的实际标准是
    out
    文件夹(就在package.json文件旁边)。此文件夹镜像源文件夹,但包含传输的JS和映射文件

    输出文件夹可以在命令行上指定(例如,当您手动运行tsc时),也可以在tsconfig.json文件中指定(请参见
    compilerOptions
    ->
    outDir

    旁注:out文件夹实际上并不需要前导的
    /
    ,但在其他情况下(如解析导入时)会触发特殊处理,其中前导的
    /
    避免通过
    节点\单元
    解析模块。因此,为了保持一致性,人们倾向于使用
    /out
    而不是
    out


    关于yeoman生成的文件:我已经有一段时间没有使用它了,我认为它还会生成您的extension.ts文件(并将其作为主文件输入package.json)。如果不发生这种情况,您可能会遇到错误或做了错事。在任何情况下,创建该文件并将其添加到
    main
    条目只需几秒钟。

    主文件是项目中要执行的第一个文件。因此,如果执行
    节点。
    将运行该文件。
    out
    目录是编译过程输出的目录。构建项目时,您将在指定文件夹中找到生成的包。如果你没有包含一个主目录或一个输出目录,那么什么都不会发生,不是所有的项目都需要它。谢谢@CristianTraìna!我忘了在问题描述中添加一个重要的细节,该细节解释了我为什么试图找出
    main
    。tl;如果我想使用清单文件中的activationEvents字段,dr,VS-Code请求一个main。知道为什么吗?或者我是否应该对激活事件感兴趣?我只想在打开正确的文件类型(有几种)时突出显示语法。谢谢您提供的所有信息!!大部分内容我都听懂了,但我有点纠结于下一步该怎么办。您提到我可以快速创建一个
    扩展名.ts
    文件,因为Yeoman没有把它放在我的目录中。我需要
    扩展名.ts中的任何内容吗?它需要在文件路径中的任何特定位置吗?另外,仅供参考,我已经向Yo代码生成器GitHub提交了一个问题。它可以根据和.md文件中的内容查看,其中应该有一个extension.ts文件(或js项目的extension.js):
    模板输出一个package.json文件和一个扩展主文件。