这是不是可以安装 node-sass 离线代理
Posted
技术标签:
【中文标题】这是不是可以安装 node-sass 离线代理【英文标题】:Is this possible to install node-sass offline proxy这是否可以安装 node-sass 离线代理 【发布时间】:2018-07-30 16:16:57 【问题描述】:我正在尝试使用 npm 安装 node-sass 模块,但每次都会显示有关网络配置问题的错误,这是因为我正在使用代理和私有注册表,这是错误:
This is most likely not a problem with node-gyp or the package itself and is related to network connectivity In most cases you are behind a proxy or have bad network setting
是否可以离线安装此模块?
【问题讨论】:
截至今天 2020 年 3 月。这根本不起作用。 请勿发布代码、数据、错误消息等的图片 - 将文本复制或输入到问题中。 How to Ask 【参考方案1】:我在尝试在公司代理后面安装 node-sass 时遇到了类似的问题。 你可以尝试的是:
-
从这里下载到本地:https://github.com/sass/node-sass/releases(根据你的操作系统选择合适的)
使用二进制配置参数–sass-binary-path。安装它。
npm install --sass-binary-path="C:\src\v4.7.2\win32-x64-57_binding.node"
【讨论】:
参数名称在每个单词之间使用破折号。--sass-binary-path
见github.com/sass/node-sass#binary-configuration-parameters
应该下载哪些文件?例如有很多针对windows x64
的文件,例如:win32-x64-72_binding.node
、win32-x64-72_binding.pdb
、win32-x64-79_binding.node
、win32-x64-79_binding.pdb
、...
如果我没记错你只需要'.node'文件。在您的情况下,它应该是win32-x64-79_binding.node
。如果您想要最新版本。
注意 - 这在 2020 年 3 月起不起作用
我认为这仍然有效。请注意,对于旧版本的 node.js,_binding.node
文件中的node module version
很重要。在 win32-x64-72_binding.node
的情况下,节点模块版本为 72。例如,适用于 Windows 的 Node.js 10.15 需要 win32-x64-64_binding.node
或 win32-ia32-64_binding.node
。【参考方案2】:
操作方法
在此处下载二进制文件:https://github.com/sass/node-sass/releases 它取决于您的操作系统和节点版本。
设置环境变量(见https://github.com/sass/node-sass#binary-configuration-parameters)export SASS_BINARY_PATH=<absolute_path_to_file>
将<absolute_path_to_file>
替换为您下载的文件的路径。路径应该是绝对的,并且是 linux 格式的(如果你使用 git bash,使用 cmd 使用 Windows 格式)。要获取绝对路径,您可以转到目录,打开 git bash 控制台并执行 pwd
,附加文件名,您应该会得到类似 /c/Users/you/SOFTWARE/win32-x64-64_binding.node
的内容。
安装(本地)npm i node-sass --save
您需要使用 node-sass 为每个打开的终端导出一次变量。这意味着您应该将导出行添加到您的npm start
。 (因此您必须将下载的文件保存在安全的地方)。
例如,您可以使用"start:dev": "set SASS_BINARY_PATH=%cd%\\win32-x64-64_binding.node && npm start"
。在这种情况下,sass 二进制文件在我的项目中,使新合作者更容易。我们使用 set
而不是 export
因为 Jetbrain IDE 默认使用 cmd(Windows 终端)。
杂项
如果您收到如下错误消息:
Testing binary
Binary has a problem: Error: The module '\\?\C:\Users\myself\SOFTWARE\win32-x64-72_binding.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 64. Please try re-compiling or re-installing
这意味着它找到了您的二进制文件,但是您为当前节点版本选择了错误的二进制文件。下载正确的版本,然后再次执行上述步骤。
如果你有使用 npm start 时(用于 react-script 项目):
./src/product-card-list/product-card-list.component.module.scss (./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-6-1!./node_modules/postcss-loader/src??postcss!./node_modules/sass-loader/lib/loader.js??ref--6-oneOf-6-3!./src/product-card-list/product-card-list.component.module.scss)
Error: ENOENT: no such file or directory, scandir 'C:\Users\myself\PROJECTS\advisor_spa\node_modules\node-sass\vendor'
第 4 步失败。再次导出 SASS_BINARY_PATH
,它应该可以工作。
如果您使用Webstorm,您可以为npm start
进行运行配置并添加完整路径SASS_BINARY_PATH=C:\Users\myself\SOFTWARE\win32-x64-64_binding.node
环境变量(适用于Windows)。
如果您在 Windows 上使用 Visual Code,您可以添加一个系统环境变量,与 PATH 处于同一级别(不在 PATH 内)。
【讨论】:
截至 2020 年 3 月。这不起作用 @SeanCh 我已经尝试过(最新的)node-sass@4.13.1 和 Node 12,这仍然有效。 @Amroise 我在 Windows 上使用 Node 10.15 和 node-sass 模块 64 v 4.13.1 进行了尝试。它仍然指向在线注册表进行安装以上是关于这是不是可以安装 node-sass 离线代理的主要内容,如果未能解决你的问题,请参考以下文章
nexus raw 仓库代理(node-sass离线安装node-sass: Command failed)