0

我正在开发一个 html5 游戏引擎,并且 - 同时 - 我正在使用这个引擎开发游戏。

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

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

这很好用,并且使用源映射我可以在引擎和应用程序中安装调试器并导航。

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

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

4

1 回答 1

0

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

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

例如,我使用了这个:

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

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

于 2017-10-13T10:11:45.497 回答