在 node-sass@4.7.2 安装后脚本失败

Posted

技术标签:

【中文标题】在 node-sass@4.7.2 安装后脚本失败【英文标题】:Failed at the node-sass@4.7.2 postinstall script 【发布时间】:2018-11-06 05:57:41 【问题描述】:

我刚刚下载了最新版本的node.js,我一直在尝试在我的一个项目中使用npm install,但我说:

我尝试过:npm rebuild node-sass --force 也没有做任何事情。

错误日志返回:

3209 warn angularfire2@5.0.0-rc.10 requires a peer of @angular/common@^6.0.0 
but none is installed. You must install peer dependencies yourself.
3210 warn angularfire2@5.0.0-rc.10 requires a peer of @angular/core@^6.0.0 but none is installed. You must install peer dependencies yourself.
3211 warn angularfire2@5.0.0-rc.10 requires a peer of @angular/platform-browser@^6.0.0 but none is installed. You must install peer dependencies yourself.
3212 warn angularfire2@5.0.0-rc.10 requires a peer of @angular/platform-browser-dynamic@^6.0.0 but none is installed. You must install peer dependencies yourself.
3213 warn angularfire2@5.0.0-rc.10 requires a peer of firebase@^5.0.3 but none is installed. You must install peer dependencies yourself.
3214 warn angularfire2@5.0.0-rc.10 requires a peer of rxjs@^6.0.0 but none is installed. You must install peer dependencies yourself.
3215 warn geofire@4.1.2 requires a peer of firebase@^2.4.0 || 3.x.x but none is installed. You must install peer dependencies yourself.
3216 warn optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):
3217 warn notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted "os":"darwin","arch":"any" (current: "os":"win32","arch":"x64")
3218 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Valid OS:    darwin
3218 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Valid Arch:  any
3218 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Actual OS:   win32
3218 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Actual Arch: x64
3219 verbose stack Error: node-sass@4.7.2 postinstall: `node scripts/build.js`
3219 verbose stack Exit status 1
3219 verbose stack     at EventEmitter.<anonymous> (C:\Users\Simon K\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\index.js:283:16)
3219 verbose stack     at emitTwo (events.js:126:13)
3219 verbose stack     at EventEmitter.emit (events.js:214:7)
3219 verbose stack     at ChildProcess.<anonymous> (C:\Users\Simon K\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
3219 verbose stack     at emitTwo (events.js:126:13)
3219 verbose stack     at ChildProcess.emit (events.js:214:7)
3219 verbose stack     at maybeClose (internal/child_process.js:925:16)
3219 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
3220 verbose pkgid node-sass@4.7.2
3221 verbose cwd C:\xampp\htdocs\project x\projectx
3222 verbose Windows_NT 10.0.16299
3223 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\Simon K\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "install"
3224 verbose node v8.11.2
3225 verbose npm  v6.0.1
3226 error code ELIFECYCLE
3227 error errno 1
3228 error node-sass@4.7.2 postinstall: `node scripts/build.js`
3228 error Exit status 1
3229 error Failed at the node-sass@4.7.2 postinstall script.
3229 error This is probably not a problem with npm. There is likely additional logging output above.
3230 verbose exit [ 1, true ]

我的 npm 和节点版本是:

2 info using npm@6.0.1
3 info using node@v8.11.2

我也尝试过完全删除我的node_modules 文件夹并再次运行npm install,但没有奏效。

一个可能的原因可能是之前我更新了节点我遵循了这个人的建议:https://github.com/angular/angular-cli/issues/10527

他说的地方:

    下载并保存正确版本的 node-sass 的本地副本 二进制 - win32-x64-64_binding.node。例如下载到 以下位置:C:\node-sass\win32-x64-64_binding.node 提供 引用 node-sass 二进制文件的完整路径 sass_binary_path npm 配置参数(在 ~/.npmrc 文件中): npm config set sass_binary_path 对于 例如,npm 配置集 sass_binary_path C:\node-sass\win32-x64-64_binding.node 运行 npm install 命令 再次正确安装@angular/cli。 执行 ng serve 或 npm start 你应该已经解决了这个问题。

我不知道这是否相关。我不这么认为,因为我已经更新了节点,试图强制node-sass重建但我不知道。

关于如何解决此问题的任何想法/建议?谢谢!

【问题讨论】:

【参考方案1】:

试试这个

npm audit
npm audit fix

【讨论】:

这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review 我遇到了同样的问题,审核修复对我有用,因为有几个漏洞阻止了安装 你救了我的命 为我工作.. 谢谢。 也为我工作,问候!【参考方案2】:

从 node_modules 中仅删除 node-sass 文件夹并运行以下命令

npm install node-sass@4.7.2 --save

【讨论】:

node_modules 中甚至没有node-sass 文件夹 试试这个 npm install -f node-sass@4.7.2 hmm .. 这可能有效,但我现在得到一个不同的错误.. 有什么想法吗? i.gyazo.com/8ef6c9fdbefe0d6861288d077d95125c.png 这似乎不是 node-sass 错误,请在不删除 node_modules 的情况下再次尝试 npm install 并发布更新的日志。【参考方案3】:

没有必要做太多,你正面临这个问题,因为你试图安装 npm sass@4.7.2 却不知道它是否与你的 pm 版本兼容,所以最好的解决方案是编写下面提到的命令:

npm install --save-dev node-sass

这将在您的系统上安装与您拥有的 npm 版本兼容的 npm sass。 谢谢,我稍后 首先,运行命令

【讨论】:

【参考方案4】:

尝试使用此标志运行--unsafe-perm=true

npm i node-sass --unsafe-perm=true

【讨论】:

你有 sudo 权限吗?尝试使用 sudo 命令运行同样的命令【参考方案5】:

尝试检查您的 Node 版本。也许你使用了错误的版本。使用 NVM 进行版本管理。

【讨论】:

【参考方案6】:

我遇到了同样的问题,我通过阅读该库版本的文档找到了解决方案,他们建议应该使用哪些版本的节点来安装该依赖项。就我而言,我使用“nvm”更改为节点版本 9.11.2,然后运行命令“npm i”。 p>

https://github.com/sass/node-sass/releases?after=v4.8.0

documentation node-sass 4.7.2

【讨论】:

在尝试了许多解决方案后感谢您的帮助,这是让它为我工作的解决方案!

以上是关于在 node-sass@4.7.2 安装后脚本失败的主要内容,如果未能解决你的问题,请参考以下文章

安装后脚本:OpenSSH 失败

二进制上传后,easy_install 因错误“找不到安装脚本”而失败?

npm install:在 node-sass@3.13.1 安装后脚本失败

在 node-sass@4.11.0 安装后脚本中失败。无法设法运行它

二进制有问题:错误:模块没有自注册

下载Navicat for MySQL,安装后连接失败怎么办?