引入js无法代码导航怎么解决?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (52)

require.js说明在模块中定义对象的方法define([requiremens], object)最好的方法。

所以每一页或其他js文件都可以require()调用和接收模块作为参数。

这很好,每个函数/模块都有自己的命名空间。

问题是我有:

// AJAX/Requests.js

define(['UI/Message'],function(Message){
var Requests={
    checkResponse:function(response){
        //1==ok
        //0==error
        //2==good message
        //3==good message, but still stop
        if(response.status==1){
            return true;
        }
        else if(response.status==2){
            Message.good(response.message);
            return true;
        }
        else if(response.status==3){
            Message.good(response.message);
            return false;
        }
        else{
            Message.bad(response.message);
            return false;
        }
    }
};
return Requests;
});

现在,UI/消息以同样的方式定义,并返回对象。

但是当我用请求编辑文件时,我不能用代码导航,所以如果我想编辑Message对象,唯一的方法就是打开文件,找到我需要的函数,而不是让IDE跳转到那里。

是否有一些解决这个问题的解决办法,具体针对pycharm,还是针对request.js?

提问于
用户回答回答于

WebStorm(至少6.0.2)支持用RequireJ导航代码,如果使用CommonJs包装器并使用exports和模块参数:

//foo.js
define(function(require, exports, module) {
    //use exports to expose properties for code navigation in other modules
    exports.bar = function() {}
});

显然,即使使用它的模块不使用CommonJs包装格式,它也能工作:

define(['./foo'], function(foo) {
    foo.bar(); //code navigation works here
}

如果其他IDE使用与CrazyCoder相同的JavaScript插件,那么它也可以用于他们的新版本。

用户回答回答于

是一个已知问题

由于PyCharm、WebStorm、PhpStorm和IntelliJIDEA共享相同的JavaScript插件,此问题也适用于正在使用的产品。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励