在我的应用中,我具有以下依赖性:
typeorm-linq-repository作为本地安装("typeorm-linq-repository": "file:../../../IRCraziestTaxi/typeorm-linq-repository"
),具有dev依赖项和TypeORM的对等依赖项
我使用"file:"
安装typeorm-linq-repository的原因是我是开发人员,并且在将发行版推送到npm之前测试了此应用程序中的更改。
我以前使用的是节点〜6.10(npm〜4),所以当我使用"file:"
安装时,它只是复制了发布的文件,这正是我想要的。
但是,在升级到节点8.11.3(npm 5.6.0)之后,它现在链接文件夹而不是复制已发布的文件。
请注意,如果重要的话,我的环境是Windows。
问题是这样的:由于我的应用程序和链接的typeorm-linq存储库在其自己的node_modules文件夹中都具有TypeORM,因此TypeORM被视为每个应用程序中模块的单独“实例”。
因此,在主应用程序中创建连接后,到达用于访问typeorm-linq-repository中的连接的代码时,它将引发错误Connection "default" was not found.
。
我一直在不懈地寻找解决方案。我已经尝试过--preserve-symlinks
,但这是行不通的。
我现在要完成这项工作的唯一方法是在应用程序的node_modules中手动创建文件夹并复制适用的文件,这是一个巨大的痛苦。
如何告诉npm不要符号链接"file:"
安装或让它使用TypeORM模块的相同实例?
答案 0 :(得分:0)
尽管我觉得它有点像创可贴,但我使它工作起来非常容易。我将在此处发布答案,以帮助可能遇到此问题的其他任何人,但是如果有人有更合适的解决方案,请随时回答,我会接受。
诀窍是将我的应用程序的TypeORM安装链接到我的另一个链接依赖项的node_modules文件夹中的TypeORM文件夹。
...,
"typeorm": "file:../../../IRCraziestTaxi/typeorm-linq-repository/node_modules/typeorm",
"typeorm-linq-repository": "file:../../../IRCraziestTaxi/typeorm-linq-repository",
...