操作方法
在此处下载二进制文件: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 内)。