不用--cwd将纱线转移到其他路径

gol*_*cks 5 npm yarnpkg

我有一个带有根文件夹和客户端文件夹的项目,两者都有package.json文件。

在根文件夹上,我永远都不想安装任何软件包。相反,我希望运行该命令$ yarn add some-package会将其自动添加到客户端文件夹中,就像我愿意那样$ yarn add some-package --cwd ./client

我尝试在cd clientyarn --cwd ./client中进行操作scripts.preinstall,但没有成功,我认为是因为preinstallinstall是不同的过程。

我还尝试在其上运行cusotm bash脚本,preinstall但没有找到将args从命令行传递给它的方法,因此它们被毛线“弄肿”了。

任何想法如何做到这一点?

我对bash相当陌生,但是我可以在一些指导下研究解决方案。

在此先感谢,祝您度过愉快的一天!

PS。我可以通过在shell上劫持yarn命令来对其进行破解,并检查我是否位于上述项目文件夹中,并且该命令是否为yarn add,但是我希望为所有开发人员提供一个解决方案,而不污染我的shell。

wiz*_*ofe 3

解决方案是使用.yarnrc根项目文件夹中package.json.

将此行添加到.yarnrc

# install modules in the specified location
--modules-folder ./client
Run Code Online (Sandbox Code Playgroud)

注意:如果您已经有一个node_modules文件夹,请在创建后随意将其删除.yarnrc,然后运行该yarn install文件夹,以便将所有包再次下载到目标目录中。