0

我已将“@angular-devkit/build-angular”添加为 devDependency,现在当我尝试运行 npm 时,我收到诸如“yp verb whichfailed 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 以获取win32-x64-57_binding.node

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

请注意,当我使用 win32-x64-57_binding.node 的绝对路径设置“SASS_BINARY_PATH”时,我在命令提示符下工作。

我正在使用带有 npm 5.6.0 的 Node v 8.2.11

4

1 回答 1

0

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

在窗户上:-

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

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

于 2018-06-11T22:27:39.713 回答