使goto定义适用于两个es6交叉项目

时间:2017-10-05 20:38:41

标签: javascript ecmascript-6 visual-studio-code go-to-definition

我正在开发一个html5游戏引擎 - 并行 - 我正在使用这个引擎进行游戏。

两者都是使用ES6编写的,并使用webpack进行编译。引擎和app都在他们自己的目录中,有自己的package.json。

我使用webpack构建引擎,然后使用npm link在指向引擎的全局node_modules中添加链接,然后在应用程序目录中使用npm link engine指向引擎开发目录。

这样工作正常,使用源图我可以使用调试器并在引擎和应用程序内导航。

在VSCode中,我有一个工作区(我正在使用内部构建),有两个目录:一个是引擎,另一个是应用程序。在使用引擎时,我可以cmd +单击任何方法,这将在引擎中打开正确的文件。该应用也是如此。

但是当我在使用引擎的app目录中处理文件时,cmd +点击引擎中的某些方法将无法正常工作。有没有办法让它正常工作?我想这是因为引擎的package.js中的主要属性是指(已编译的)已构建的main,而不是主(webpack)ES6应用程序入口点。我该怎么做才能使它按预期工作?

1 个答案:

答案 0 :(得分:0)

实际上这可以使用VSCode的Typescript编译器使用的jsconfig.json配置文件来修复。

它可以接受编译器将使用的别名,而不是使用package.json文件的主条目。

例如,我用过这个:

{
    "compilerOptions": {
        "target": "es2016",
        "module": "es6",
        "baseUrl": ".",
        "paths": {
            "athenajs": [
                "./node_modules/athenajs/js/athena-module"
            ]
        }
    }
}

有关jsconfig.json的详细信息,请参阅此cookbook