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

时间:2019-07-03 05:43:38

标签: npm yarnpkg

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

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

我尝试在cd client中进行yarn --cwd ./clientscripts.preinstall,但是没有用,我认为这是因为preinstallinstall是不同的过程

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

解决方案是在.yarnrc旁边的根项目文件夹中使用package.json文件。

将此行添加到.yarnrc

# install modules in the specified location
--modules-folder ./client

注意:如果已经拥有node_modules文件夹,则在创建.yarnrc之后可以将其删除,然后通过运行yarn install将所有软件包重新下载到目标目录中,以进行后续操作