javascript - 如何让 Intellisense 引用另一个文件夹中的 JS 文件?

标签 javascript visual-studio-code

(编辑:更新了我尝试过的事情和遇到的问题的更多信息。)

我正在尝试让 Intellisense 识别并利用项目中公共(public)文件夹中的 JS 文件。我当前的结构如下所示:

  • .vscode
    • launch.json
  • 常见
    • jsconfig.json
    • MyLib.js
  • 测试
    • jsconfig.json
    • index.html
    • runtests.js
  • 演示
    • jsconfig.json
    • index.html
    • demo.js

MyLib.js 很简单:

function MyLib(){}
MyLib.prototype = { constructor: MyLib };

我的 demo/jsconfig.json 文件如下所示:

{
    "compilerOptions": {
        "target": "ES5"
    },
    "include": [
        "../common/MyLib.js"
    ]
}

现在,当我编辑 demo.js 时,我开始输入:var x = new MyL... 但什么也没有发生。

我的配置中是否缺少某些内容?它需要某种类型的文档吗?

更新:

我将我的 demo/jsconfig.json 更新为如下所示(按照 Matt Bierner 的建议添加文件):

{
  "compilerOptions": {
    "target": "ES5"
  },
  "files": [
    "demo.js",
  ],
  "include": [
    "../common/MyLib.js"
  ]
}

...我能够在建议中看到 MyLib,但是我在 demo.js 中创建的对象...

var x = new MyLib();

...x 无法看到 MyLib 的任何属性,这正是 (IMO) Intellisense 的要点。

最佳答案

尝试配置项目,使其包含这两个文件,可以使用 files 选项显式列出项目中的所有文件:

{
  "compilerOptions": {
    "target": "ES5"
  },
  "files": [
    "demo.js",
    "../common/MyLib.js"
  ]
}

或使用include选项:

{
  "compilerOptions": {
    "target": "ES5"
  },
  "files": [
    "demo.js",
  },
  "include": {
    "./**/*.js"
  ]
}

使用此配置,我在 demo.js 中看到了 MyLib 的建议。 Here's more information about the jsconfig options

关于javascript - 如何让 Intellisense 引用另一个文件夹中的 JS 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43354977/

相关文章:

javascript - 有没有一种简单的方法可以在 React.JS 中包含像 DataTables 这样的 jQuery UI 插件?

javascript - 测试适用于 jasmine-node,但不适用于 jasmine

javascript - Electron - 如何控制系统媒体(播放/暂停)?

javascript - JS检测离线?我究竟做错了什么

javascript - Lint 双逗号数组

javascript - 需要一个 json 文件导致错误 : Cannot find module

javascript - 每个摘要都会评估 ng-switch 条件

visual-studio-code - 在 VSCode 中,如何停止通过 Code Runner 扩展运行的代码?

c++ - 如何在 VS 代码中为 Bazel 项目启用 C++ 智能感知?

html - HTML 文件中的 Visual Studio 代码注释