问题描述
packages
common
src
index.js
module1.js
module2.js
package.json
user
src
index.js
moduleA.js
mobuleB.js
package.json
package.json
我的根package.json
{
"private": true,"workspaces": ["packages/*"]
}
package.json
来自 common
{
"name": "@packages/common","version": "1.0.0","main": "src/index.js","license": "MIT"
}
package.json
来自 user
{
"name": "@packages/user","license": "MIT","dependencies": {
"@packages/common": "1.0.0"
}
}
正如预期的那样,user
包需要从 common
包“使用/导入”。
这是我的问题:如果我想从 module1
包中导入 module2
或 common
。有没有办法直接做到这一点,比如:
import { Foo } from "@packages/common/src/module1";
这是一种反模式吗?我应该只从 import
中 @packages/common
,这意味着从 common/src/index.js
导入(考虑到 main
上的 package.json)
属性?
我非常想访问 src/sub-folder/sub-file
包中的任何 common
。我应该import | re-export
common/src/index.js
文件中的所有内容,还是有办法直接获取其他文件?
解决方法
是的,你可以。以下应该可以正常工作:
import { Foo } from "@packages/common/src/module1";
OBS:以下详细信息特定于 Next.js 项目,但其他项目的想法可能相同。
请记住,如果您需要转换这些文件(位于下一个项目文件夹之外的文件),则需要使用 next-transpile-modules
包。
可以在此处找到更多详细信息: