簡體   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