angular - @angular-devkit/build-angular (nodeSassConfig) 无法通过 npm 下载
问题描述
我已将“@angular-devkit/build-angular”添加为 devDependency,现在当我尝试运行 npm 时,我收到诸如“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 以获取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
解决方案
我设法通过在 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 需要绝对路径。
推荐阅读
- php - PHP正则表达式自定义字符串变量替换
- javascript - 为什么 lodash 实现使用 call 来减少参数并在之后应用?
- c - 获取被调用对象不是第 34:13 行的函数或函数指针问题
- asp.net-core-2.1 - 有没有办法在 ASP.NET Core 2.1 中捕获对 Razor 页面不存在的自定义处理程序的 HTTP 请求?
- django - django+uwsgi+docker 同时连接到上游
- tla+ - 如何在 TLA+ 中执行详尽的状态检查?
- python - 使用 Paint per command/function 打开图像
- javascript - 我如何仅通过查看号码来确定国家/地区代码
- angular-cli - Angular cli 7 组件不会在自定义标记调用上呈现 html
- powershell - 比较两个文本文件并将差异写入文本文件