【问题标题】:Javascript AMD Modules: How to get Visual Studio intellisense across modulesJavascript AMD 模块:如何跨模块获取 Visual Studio 智能感知
【发布时间】:2016-10-17 23:13:32
【问题描述】:

在 javascript 上下文中查看异步模块定义 (AMD) 后,我想知道如何在 Visual Studio 2010 中为依赖模块获取智能感知。

例如给定模块A:

define(function() {
    return {
        square: function(value) {
            return value * value;
        }
    };
});

和相应的模块B:

define(["A"], function(a) {
    return {
        value: a.square(10)
    }
});

然后我想对模块 B 中的模块 A(表示为参数 a)进行完整的智能感知。请注意,这两个模块都将在单独的文件中定义(在本例中为 A.js 和 B.js)。

【问题讨论】:

标签: intellisense requirejs js-amd


【解决方案1】:

这里的评论帮助我让它部分工作:Comment on GitHub Repo

基本上,我必须确保:

/// <reference path="require.js" />

位于 _references.js 文件的顶部。它适用于“require”和“define”块,但似乎不适用于“define”块内的匿名函数。

【讨论】:

    【解决方案2】:

    看起来 RequireJS 的作者在这里致力于 Intellisense 支持: https://github.com/jrburke/requirejs-intellisense

    很遗憾,我还没有让“魔法”发挥作用。

    更新:我确实让它在某些情况下工作。特别是当所有 js 文件都在同一个文件夹中时,它的效果很好。

    【讨论】:

    • 我将所有 javascript 文件放在同一个文件夹中并“引用”了 require.js(将文件拖到编辑器以获取参考注释)。我发现开始工作通常需要几秒钟。我确实让它适用于其他一些文件夹结构,但它似乎非常有限。另外我认为它只适用于要求调用(不定义)。
    • 我得到了define和require函数(即'require'显示在默认模块定义中的智能感知中)。但是我无法获得测试或人的智能感知,即“测试”。没有列出 numberProperty 和 childObject。这就是我所说的“完整”智能感知。
    • 得到它的工作,这就是我所做的:1. 克隆 github.com/jrburke/requirejs-intellisense 2. 在 vs 11 中创建了一个空的网络应用程序 sln(vs 10 对我不起作用) 3. 复制了所有 js 文件从 test 到 sln 4. 打开 default.js 并删除 'js/' 前缀(person 和 test 不在子路径中) 5. 添加“/// ”到default.js 顶部 6. 人参数现在应该有智能感知 7. 打开 test.js 并添加空依赖数组,即定义现在应该是 "define([], function () {" 8. 测试参数,默认.js 现在有了智能感知,耶:D
    猜你喜欢
    • 2016-10-02
    • 2017-07-25
    • 2016-03-20
    • 2018-02-24
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 2011-10-14
    相关资源
    最近更新 更多