[英]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.