@angular-devkit/build-angular (nodeSassConfig) 无法通过 npm 下载

@angular-devkit/build-angular (nodeSassConfig) cannot be downloaded via npm

我已经将“@angular-devkit/build-angular”添加为 devDependency,现在当我尝试 运行 npm i 时,我收到诸如 "yp verb which failed Error: not found: python2" 之类的错误。那是因为它试图下载“

https://github.com/sass/node-sass/releases/download/v4.9.0/win32-x64-57_binding.node

”,因为我们在防火墙后面,所以它失败了。

我遇到了“https://github.com/sass/node-sass/issues/1106”,这表明如果我的 package.config 中有 "nodeSassConfig" 指向本地下载的 win32-x64-57_binding.node 版本不会去github,会尝试使用本地版本

"nodeSassConfig": {
    "binaryPath": "/test-sass/binding.node/win32-x64-57_binding.node"
  },

即使在指定值之后,npm i 仍然尝试访问 github for win32-x64-57_binding.node

所以,我决定 运行 一个预安装脚本来设置 "SASS_BINARY_PATH" 环境变量,但由于某些原因 "SASS_BINARY_PATH" 需要完整路径而不是相对路径。

请注意,当我将 "SASS_BINARY_PATH" 设置为 win32-x64-57_binding.node 的绝对路径时,我在命令提示符下进行了此操作。

我正在使用 Node v 8.2.11 和 npm 5.6.0

我通过在包中指定预安装任务设法解决了这个问题。config/script。

在 windows 上:-

scripts {
"preinstall": "SET SASS_BINARY_PATH=%cd%/test-sass/binding.node/win32-x64-57_binding.node&& npm install node-sass"
}

请注意,我必须添加 %cd% 才能生成完整路径,因为 SASS_BINARY_PATH 需要绝对路径。