如何正确使用 "external" JS 模块来完成 PhpStorm?
How to correctly use an "external" JS module for PhpStorm completion?
本题涉及:Git个子模块,Docker,JavaScript,Nuxt.
情况
有 2 个项目:
back
:包含 docker 容器,带有 API 和 为 gRPC 编译的 js 文件,这是一个 git 子模块.
front
:使用那些 js 文件
使用的包管理器是yarn
。
当前设置
文件夹结构如下
.
+-- back (git submodule)
+-- js
+-- file1
+-- file1
+-- front
+-- package.json
front
有一个声明的卷 link 到 js 文件:
front:
volumes:
- ../back/js:/usr/src/app/js_back:ro
然后我可以使用以下方式引用这些文件:
import ... from '@/js_back/...'
问题是 PhpStorm 不知道 @/js_back/...
实际上是 ../back/js
此外,由于经常需要这些文件,我希望能够参考那些带有 @back/...
的文件。
备选方案
- 在
package.json
中声明 link 对文件的依赖关系。 => 这似乎不起作用
- 在自定义包注册表下发布 JS 部分。 => 这些文件与
back
紧密耦合,因此这将更难维护。
- 提示 PhpStorm 关于文件位置。 => 我在其他一些问题上看到“将目录标记为资源根目录”,但这似乎不起作用。
所以我找到了解决办法。在我的 package.json 中,我确实声明了
{
"dependencies": {
"@my/back": "file:./js_back"
}
}
在 yarn install
之后,内容被复制到 node_modules 下,因此 PHPStorm 可以正确地看到它并相应地提供完成。
本题涉及:Git个子模块,Docker,JavaScript,Nuxt.
情况
有 2 个项目:
back
:包含 docker 容器,带有 API 和 为 gRPC 编译的 js 文件,这是一个 git 子模块.front
:使用那些 js 文件
使用的包管理器是yarn
。
当前设置
文件夹结构如下
.
+-- back (git submodule)
+-- js
+-- file1
+-- file1
+-- front
+-- package.json
front
有一个声明的卷 link 到 js 文件:
front:
volumes:
- ../back/js:/usr/src/app/js_back:ro
然后我可以使用以下方式引用这些文件:
import ... from '@/js_back/...'
问题是 PhpStorm 不知道 @/js_back/...
实际上是 ../back/js
此外,由于经常需要这些文件,我希望能够参考那些带有 @back/...
的文件。
备选方案
- 在
package.json
中声明 link 对文件的依赖关系。 => 这似乎不起作用 - 在自定义包注册表下发布 JS 部分。 => 这些文件与
back
紧密耦合,因此这将更难维护。 - 提示 PhpStorm 关于文件位置。 => 我在其他一些问题上看到“将目录标记为资源根目录”,但这似乎不起作用。
所以我找到了解决办法。在我的 package.json 中,我确实声明了
{
"dependencies": {
"@my/back": "file:./js_back"
}
}
在 yarn install
之后,内容被复制到 node_modules 下,因此 PHPStorm 可以正确地看到它并相应地提供完成。