繁体   English   中英

使goto定义可用于两个es6跨项目

[英]Making goto definition work with two es6 cross projects

我正在使用html5游戏引擎,并且-并行-我正在使用该引擎进行游戏。

两者均使用ES6编写,并使用webpack进行转译。 引擎和应用程序都位于各自的目录中,并具有各自的package.json。

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

一切正常,使用sourcemaps,我可以拥有调试器,并在引擎和应用程序中导航。

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

但是,当我在使用引擎的应用程序目录中的文件上工作时,cmd +单击引擎中的某些方法将不起作用。 有没有办法使其正常工作? 我猜这是因为引擎的package.js中的main属性是指(已编译的)内置main,而不是ES6应用程序的主要入口。 我该怎么做才能使其按预期工作?

实际上,可以使用jsconfig.json的Typescript编译器使用的jsconfig.json配置文件解决此问题。

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

例如,我使用了这个:

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

有关jsconfig.json的更多信息,请参见此食谱

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM