如何在 node-sass 工作的情况下使用 yarn install --offline?
Posted
技术标签:
【中文标题】如何在 node-sass 工作的情况下使用 yarn install --offline?【英文标题】:How to get yarn install --offline with node-sass working? 【发布时间】:2018-01-07 12:14:47 【问题描述】:我正在尝试在离线模式下使用yarn
,因为我使用的构建服务器无法访问yarn
注册表或github.com
。
我发现这个article 是关于如何在离线模式下使用yarn
,在我添加node-sass 之前效果很好。
出现即使你使用yarn install --offline
,node-sass
也会去github.com
下载libsass
。
有没有办法指示node-sass
使用离线版本的libsass
而不是去github.com
?
【问题讨论】:
大概和npm
一样,你可以提供--sass-binary-site
:github.com/sass/node-sass#binary-configuration-parameters
我没有意识到这一点。立即查看。
@jonrsharpe 成功了。不确定我如何回答这个问题?
你可以在下面写一个答案,解释你做了什么来修复它,然后自己接受。
【参考方案1】:
正如@jonrsharpe 指出的那样,您需要使用--sass-binary-site
、--sass-binary-name
或--sass-binary-path
来告诉node-sass 在哪里可以找到libsass
。就我而言,我最终使用了sass-binary-path
。
所以我做的第一件事就是下载Windows
版本的libsass
here。我下载了_binding.node
版本,因为我认为_binding.pdb
版本是一个调试文件。
我创建了一个.yarnrc
,如下所示:
yarn-offline-mirror "////sharedrive//folder"
yarn-offline-mirror-pruning true
sass-binary-path "////sharedrive//folder//win32-ia32-47_binding.node"
对于Windows
版本,所有/
都需要使用//
进行转义。 sass-binary-path
在最后需要 libsass
二进制文件,在上述情况下为 win32-ia32-47_binding.node
。
所以一切都很好。
【讨论】:
这也是一种非常有用的方法,可以避免在使用yarn
或npm i
时不断重建node-sass
。
我将重申 Troy 的观点……任何人都知道成功的开发组织需要快速的构建时间。 node-sass
开发人员不应该尝试修改系统库的布局。 yarn
的构建方式似乎迫使生态系统留下诸如此类的工件......脚本在安装阶段从互联网下载任意二进制文件......
apk add --no-cache libsass
是如果您使用基于 alpine 的 Docker 映像作为节点的方法以上是关于如何在 node-sass 工作的情况下使用 yarn install --offline?的主要内容,如果未能解决你的问题,请参考以下文章
macOS Catalina 上的 Node-sass 无法正常工作。我应该如何解决这个问题?