【发布时间】:2021-10-10 11:28:58
【问题描述】:
本题涉及:Git子模块、Docker、JavaScript、Nuxt。
情况
有2个项目:
-
back:包含带有 API 的 docker 容器和为 gRPC 编译的 js 文件,这是一个 git 子模块。 -
front:消费那些js文件
使用的包管理器是yarn。
当前设置
文件夹架构如下
.
+-- back (git submodule)
+-- js
+-- file1
+-- file1
+-- front
+-- package.json
front 有一个链接到 js 文件的声明卷:
front:
volumes:
- ../back/js:/usr/src/app/js_back:ro
然后我可以使用以下方法引用这些文件:
import ... from '@/js_back/...'
问题是 PhpStorm 不知道 @/js_back/... 是现实的 ../back/js
此外,由于这些文件通常是必需的,因此我希望能够通过 @back/... 引用那些文件。
替代方案
- 在
package.json中声明一个链接到文件的依赖项。 => 这似乎不起作用 - 在自定义包注册表下发布 JS 部分。 => 这些文件与
back紧密耦合,因此更难维护。 - 提示 PhpStorm 关于文件位置。 => 我在其他一些问题上看到“将目录标记为资源根”,但这似乎不起作用。
【问题讨论】:
-
@来自哪里?它是在您的构建文件(webpack 等)中某处定义的别名吗?您可以使用webpack integration 来解析这些别名。或者,只需在项目根文件夹中的jsconfig.json 中定义您的别名 -
@在 Nuxt nuxtjs.org/docs/2.x/configuration-glossary/configuration-alias 中默认定义。 -
哦,刚刚注意到“在 package.json 中声明一个链接到文件的依赖项”。在安装纱线后工作,因为它复制了
node_modules下的目录。
标签: docker phpstorm package.json