使 goto 定义适用于两个 es6 交叉项目
Making goto definition work with two es6 cross projects
我正在开发 html5 游戏引擎,并且 - 同时 - 我正在使用该引擎开发游戏。
两者都是使用 ES6 编写并使用 webpack 转译。引擎和应用程序都在自己的目录中,有自己的 package.json.
我用webpack搭建引擎,然后用npm link
在global node_modules里加一个link指向引擎,然后用npm link engine
在应用程序目录指向引擎开发目录。
工作正常,使用 sourcemaps 我可以在引擎和应用程序中使用调试器和导航。
在 VSCode 中,我有一个包含两个目录的工作区(我正在使用内部构建):一个是引擎,另一个是应用程序。在引擎上工作时,我可以 cmd+click 任何方法,这将在引擎中打开正确的文件。应用程序也是如此。
但是当我在使用引擎的应用程序目录中处理文件时,cmd+单击引擎中的某些方法将不起作用。有没有办法让它正常工作?我猜这是因为引擎 package.js 中的 main 属性 指的是(转译)构建的 main,而不是主要的(webpack)ES6 应用程序入口点。我该怎么做才能让它按预期工作?
实际上,这可以使用 VSCode 的 Typescript 编译器使用的 jsconfig.json
配置文件来解决。
它可以接受编译器随后使用的别名,而不是使用 package.json 文件的主条目。
例如,我使用了这个:
{
"compilerOptions": {
"target": "es2016",
"module": "es6",
"baseUrl": ".",
"paths": {
"athenajs": [
"./node_modules/athenajs/js/athena-module"
]
}
}
}
有关 jsconfig.json 的更多信息,请参阅此 cookbook。
我正在开发 html5 游戏引擎,并且 - 同时 - 我正在使用该引擎开发游戏。
两者都是使用 ES6 编写并使用 webpack 转译。引擎和应用程序都在自己的目录中,有自己的 package.json.
我用webpack搭建引擎,然后用npm link
在global node_modules里加一个link指向引擎,然后用npm link engine
在应用程序目录指向引擎开发目录。
工作正常,使用 sourcemaps 我可以在引擎和应用程序中使用调试器和导航。
在 VSCode 中,我有一个包含两个目录的工作区(我正在使用内部构建):一个是引擎,另一个是应用程序。在引擎上工作时,我可以 cmd+click 任何方法,这将在引擎中打开正确的文件。应用程序也是如此。
但是当我在使用引擎的应用程序目录中处理文件时,cmd+单击引擎中的某些方法将不起作用。有没有办法让它正常工作?我猜这是因为引擎 package.js 中的 main 属性 指的是(转译)构建的 main,而不是主要的(webpack)ES6 应用程序入口点。我该怎么做才能让它按预期工作?
实际上,这可以使用 VSCode 的 Typescript 编译器使用的 jsconfig.json
配置文件来解决。
它可以接受编译器随后使用的别名,而不是使用 package.json 文件的主条目。
例如,我使用了这个:
{
"compilerOptions": {
"target": "es2016",
"module": "es6",
"baseUrl": ".",
"paths": {
"athenajs": [
"./node_modules/athenajs/js/athena-module"
]
}
}
}
有关 jsconfig.json 的更多信息,请参阅此 cookbook。