为啥 Yarn 不在 .bin 文件夹中安装所有可执行文件?
Posted
技术标签:
【中文标题】为啥 Yarn 不在 .bin 文件夹中安装所有可执行文件?【英文标题】:Why doesn't Yarn install all executables in .bin folder?为什么 Yarn 不在 .bin 文件夹中安装所有可执行文件? 【发布时间】:2017-02-21 13:41:01 【问题描述】:我刚刚开始使用 Yarn 包管理器并下载了一个 Ionic 2 入门项目。
在这个项目中,我们从编译、缩小、lint 和捆绑代码的脚本中获得了很多帮助。所有这些都由ionic-app-scripts 提供,它有几个依赖项用于运行命令。
问题是我用Yarn安装的时候,node_modules/.bin/文件夹里面没有包含所有必须的可执行文件,比如tslint
,这是ionic-app-scripts的一个依赖,所以没有直接在我的package.json
。
结果是,当我使用 Yarn 时,ionic-app-scripts 不起作用,因为它期望 .bin
文件夹包含 tslint 可执行文件!
我能做什么? ionic-app-scripts 的定义有问题吗?
[注意]:npm install 可以,但是 Yarn 更快!
【问题讨论】:
【参考方案1】:这是一个known issue,还有一个pull request 提供更多信息。
简而言之,如果你想现在解决这个问题,你必须在你的依赖项中明确地包含你需要的二进制包。
【讨论】:
v1.13.0 仍然如此 -yarn install --force
可以解决问题。【参考方案2】:
我遇到了这个问题,但有不同的解决方案。
解决方案来自这张票https://github.com/yarnpkg/yarn/issues/992#issuecomment-318996260
...我的解决方法是转到文件管理器,右键单击 /node_modules 主文件夹,选择属性,然后选中 - 取消选中“只读”。您也可以在命令行中使用 attrib 来执行此操作。然后你重试安装,它就可以工作了。
【讨论】:
以上是关于为啥 Yarn 不在 .bin 文件夹中安装所有可执行文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Yarn 工作区的一个 package.json 文件中安装包?