这是不是可以安装 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.nodewin32-x64-72_binding.pdbwin32-x64-79_binding.nodewin32-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.nodewin32-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)

nexus raw 仓库代理(node-sass离线安装node-sass: Command failed)

安装node-sass的正确方法

命令行无法识别 Node-sass

npm 包离线化

npm 包离线化