如何正确使用 "external" JS 模块来完成 PhpStorm?

How to correctly use an "external" JS module for PhpStorm completion?

本题涉及:Git个子模块,Docker,JavaScript,Nuxt.

情况

有 2 个项目:

使用的包管理器是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/... 的文件。

备选方案

  1. package.json 中声明 link 对文件的依赖关系。 => 这似乎不起作用
  2. 在自定义包注册表下发布 JS 部分。 => 这些文件与 back 紧密耦合,因此这将更难维护。
  3. 提示 PhpStorm 关于文件位置。 => 我在其他一些问题上看到“将目录标记为资源根目录”,但这似乎不起作用。

所以我找到了解决办法。在我的 package.json 中,我确实声明了

{
  "dependencies": {
    "@my/back": "file:./js_back"
  }
}

yarn install 之后,内容被复制到 node_modules 下,因此 PHPStorm 可以正确地看到它并相应地提供完成。