如何编写JavaScript模块,以便VS Code(和其他编辑器)提供智能感知?

时间:2017-08-07 09:43:25

标签: javascript node.js module intellisense

我使用了VS Code提供的intellisense的node.js模块。例如,我安装了一个名为jsonfile的库(通过npm install jsonfile --save),intellisense的工作原理如下:

const j = require('jsonfile');
j. // VS Code intellisense suggests all the methods with a brief description of parameters nad the method itself

查看jsonfile代码,我看到了:

var jsonfile = {
  spaces: null,
  readFile: readFile,
  readFileSync: readFileSync,
  writeFile: writeFile,
  writeFileSync: writeFileSync
}

module.exports = jsonfile

这与我的代码类似,我没有得到任何智能感知:

MY-module.js

module.exports = (function() {
    var x = "Hello I'm x"
    var y = function() {
        return "Hello I'm y"
    }
    return {
        x: x,
        y: y
    }
})()

index.js

const m = require('./my-module.js');
m. // No intellisense :(

问题

如何构建自己的模块,以便VS Code能够为我自己的代码提供基本的智能感知?是否与通过npm安装有关?或者我需要一个外部文件?或其他什么......

这实际上类似于此处提出的问题:How can I make Visual Studio 2013 resolve Node.js require() modules and provide intellisense?。但是,唉,没有答案。此外,就智能感知实现而言,VS代码可能与VS不同。

我也100%确定这是可能的,因为库jsonfile正是这样做的。

进一步研究,我找到了这个文档:https://code.visualstudio.com/docs/languages/javascript。这似乎是如何实现上述的说明。然而,我仍然认为这个问题是相关的,因为我非常确定如何实现智能感知的一段回应会使文档筛选更加容易。

1 个答案:

答案 0 :(得分:-1)

嗯,这是我提出的一个快速摘要,通过文档。

  

VS Code IntelliSense是为JavaScript,TypeScript,JSON提供的,   开箱即用的HTML,CSS,Less和Sass。IntelliSense

     

您可以通过键入Ctrl + Space在任何编辑器窗口中触发IntelliSense   或者输入一个触发字符(例如点字符(。))   的JavaScript)。Features

     

您可以在设置和密钥中自定义IntelliSense体验   绑定。Customizing IntelliSense

     

如果您发现IntelliSense已停止工作,则语言服务可能会   没有跑。尝试重新启动VS代码,这应该解决   问题。Troubleshooting

希望能有所帮助。