Visual Code中的AMD / Requirejs智能感知

时间:2016-10-25 14:59:50

标签: requirejs visual-studio-code amd

使用AMD模块时,是否可以让Intellisense在Visual Code中工作?

我的jsconfig.json文件设置为:

{
    "compilerOptions": {
        "target": "es5",
        "module": "amd"
    },
    "exclude": [
      "node_modules"
    ]
}

这不起作用。我到处搜索但无法找到怎么做。

3 个答案:

答案 0 :(得分:2)

如果有其他人遇到此问题,我通过更改我定义模块的方式解决了这个问题。

由此:

define(['jquery'],
    function ($) {

到这个

define(function (require, exports, module) {
    var $ = require('jquery');

Visual Code似乎能够在使用require方法时使用Intellisense,而不是传递依赖数组。

答案 1 :(得分:0)

我尝试通过添加所需模块的注释引用来解决此问题。

/// <reference path="some-module.js" />

一些-module.js:

var module = {
    member : {}
};

define([], function(){return module;});

这允许intellisense因缺少参数而起作用,但肯定不会运行:

/// <reference path="some-module.js" />
require(['some-module'], function(){//<--no parameter "module"
     module.member;//intellisense works
});

这会因隐藏而中断智能感知,但实际上会执行:

/// <reference path="some-module.js" />
require(['some-module'], function(module){//<--parameter "module"
     module.member;//no intellisense
});

我想我现在可以在处理文件时删除参数,然后在完成后恢复它。这感觉就像一个可怕的解决方案。如果没有关闭默认隐藏行为或指定参数与引用类型相同...

答案 2 :(得分:0)

Require Module Support如果配置正确,则可以为AMD / Requirejs提供良好的Intellisense。