新的 Angular CLI 项目 core-js@2.6.9 安装后错误

Posted

技术标签:

【中文标题】新的 Angular CLI 项目 core-js@2.6.9 安装后错误【英文标题】:New Angular CLI project core-js@2.6.9 postinstall error 【发布时间】:2020-01-04 00:56:48 【问题描述】:

我正在使用 Angular CLI 版本 7.3.9,因为我无法升级到 8.3.2(我假设我在尝试升级 Angular CLI 时遇到的错误是同一个问题)。当我尝试创建一个新项目时,我遇到了 NPM 异常。我尝试清除 npm 缓存并更新所有全局安装的软件包。一些包因类似错误而出错,其他包似乎工作正常。

这只会影响一台机器。我已经尝试卸载并重新安装@angular/cli,卸载并重新安装节点,并尝试同时尝试节点 10 和 12。没有解决错误。

就解决 NPM 安装错误而言,我有哪些选择?我可以尝试在下面解决此问题吗?有什么地方我应该寻找更好的答案吗?

当我运行ng version 时,我得到以下输出:

Angular CLI: 7.3.9
Node: 10.16.3
OS: win32 x64
Angular:
...

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.13.9
@angular-devkit/core         7.3.9
@angular-devkit/schematics   7.3.9
@schematics/angular          7.3.9
@schematics/update           0.13.9
rxjs                         6.3.3
typescript                   3.2.4

当我运行命令 ng new TestProject 时,我得到以下输出:

PS L:\Repos\Temp> ng new TestProject
? Would you like to add Angular routing? Yes
? Which stylesheet format would you like to use? Less   [ http://lesscss.org
     ]
CREATE TestProject/angular.json (3940 bytes)
CREATE TestProject/package.json (1311 bytes)
CREATE TestProject/README.md (1028 bytes)
CREATE TestProject/tsconfig.json (435 bytes)
CREATE TestProject/tslint.json (1621 bytes)
CREATE TestProject/.editorconfig (246 bytes)
CREATE TestProject/.gitignore (629 bytes)
CREATE TestProject/src/favicon.ico (5430 bytes)
CREATE TestProject/src/index.html (298 bytes)
CREATE TestProject/src/main.ts (372 bytes)
CREATE TestProject/src/polyfills.ts (2841 bytes)
CREATE TestProject/src/styles.less (80 bytes)
CREATE TestProject/src/test.ts (642 bytes)
CREATE TestProject/src/browserslist (388 bytes)
CREATE TestProject/src/karma.conf.js (1024 bytes)
CREATE TestProject/src/tsconfig.app.json (166 bytes)
CREATE TestProject/src/tsconfig.spec.json (256 bytes)
CREATE TestProject/src/tslint.json (244 bytes)
CREATE TestProject/src/assets/.gitkeep (0 bytes)
CREATE TestProject/src/environments/environment.prod.ts (51 bytes)
CREATE TestProject/src/environments/environment.ts (662 bytes)
CREATE TestProject/src/app/app-routing.module.ts (245 bytes)
CREATE TestProject/src/app/app.module.ts (393 bytes)
CREATE TestProject/src/app/app.component.html (1152 bytes)
CREATE TestProject/src/app/app.component.spec.ts (1110 bytes)
CREATE TestProject/src/app/app.component.ts (216 bytes)
CREATE TestProject/src/app/app.component.less (0 bytes)
CREATE TestProject/e2e/protractor.conf.js (752 bytes)
CREATE TestProject/e2e/tsconfig.e2e.json (213 bytes)
CREATE TestProject/e2e/src/app.e2e-spec.ts (640 bytes)
CREATE TestProject/e2e/src/app.po.ts (251 bytes)

> node-sass@4.12.0 install L:\Repos\Temp\TestProject\node_modules\node-sass
> node scripts/install.js


> core-js@2.6.9 postinstall L:\Repos\Temp\TestProject\node_modules\core-js
> node scripts/postinstall || echo "ignore"

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted "os":"darwin","arch":"any" (current: "os":"win32","arch":"x64")
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: node-sass@4.12.0 (node_modules\node-sass):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: node-sass@4.12.0 install: `node scripts/install.js`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: spawn bash ENOENT

npm ERR! file bash
npm ERR! path bash
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn bash
npm ERR! core-js@2.6.9 postinstall: `node scripts/postinstall || echo "ignore"`
npm ERR! spawn bash ENOENT
npm ERR!
npm ERR! Failed at the core-js@2.6.9 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\<USER>\AppData\Roaming\npm-cache\_logs\2019-08-30T19_06_06_818Z-debug.log
Package install failed, see above.

上面的日志内容可以在这里找到:https://gist.github.com/joecoolish/ff0ffdb7eb583ef5b18146ca2e456c2c

【问题讨论】:

也许有帮助:***.com/a/52247173/4718434 @yaya,我最初也有同样的想法。我在尝试安装全局软件包时遇到错误。我已经完全卸载了节点并删除了所有漫游应用程序数据文件夹,但我仍然收到错误:/.超级讨厌 您是否也尝试过降级节点?也尝试在 c 驱动器中创建项目,而不是 L。 你也完全卸载了node和npm吗?我的意思是,在我的机器(Windows)中有 2 个文件夹,一个在 appdata 中,一个在程序文件中。我也认为您可以搜索 npm 缓存文件夹路径并手动删除它。 是的。我从节点 12 转到节点 10,我尝试在 C 盘上创建一个新项目,然后我刚刚卸载,删除了我的 c:\ 盘上所有提到 NPM 的内容(我发现上次错过了一些,所以我充满希望) , 重装node 10 w/npm 6.9,错误依旧。 【参考方案1】:

Tl;dr:在 windows 中经常使用Git bash 而不是普通的命令行可以解决这个问题。在其他平台上,可能有几个原因。 (阅读下文)。

首先尝试清除 npm 缓存和降级节点,如下所述:link

ng 尝试执行node 以及安装node-sass 时,您会收到此错误。两者似乎都是权限(安全)问题,或节点环境变量问题。所以试试这些:

1.使用Git bash 而不是cmd(先试试这个,通常可以解决问题)

    确保您有 2 个环境变量 NVM_HOME 和 NVM_SYMLINK,并确保这些变量也存在于 PATH 环境变量中。

    确保您以管理员身份安装了 nodejs。

    确保您可以在 cmd 中运行 node

    卸载 angular cli 并使用--unsafe-perm 标志安装它(再次以管理员身份)(例如:https://github.com/Alex-Rose/fb-messenger-cli/issues/94#issuecomment-333047050)

    暂时卸载 typescriptrxjs,让它更简单。

    确保在所有步骤中,您以管理员身份运行命令行。

    如果上述方法不起作用,请切换到administrator account并在那里尝试。

与您收到的错误相关的链接:

https://github.com/Medium/phantomjs/issues/765

https://github.com/sass/node-sass/issues/2544

如果这不能解决问题,请尝试https://***.com/a/27883443/4718434 记录有关spawn ENOENT 错误的更多详细信息。

编辑

似乎安装后失败的软件包只是在执行echo 命令。验证您的系统是否可以处理echo 命令,如果不能,您也可以编写一个简单的echo.cmd 脚本并将其放入windows/system32

【讨论】:

所以 git bash 工作了......为什么当 CMD/PowerShell 不工作时 git bash 会工作? @joe_coolish 实际上我在 cmd 中对其进行了测试。 git bash 有一些 linux 有的命令。您是否也在 cmd/powershell 中尝试过? 我尝试了所有 3 个,但只有 git bash 有效。我查看了失败的 postinstall.js 文件,这些命令基本上是“echo”命令,在 cmd/powershell 中无法解析。 我的 cmd 有 echo 命令。你也可以写一个简单的echo.cmd脚本,放入windows/system32 @tenkmilan 谢谢。因为问答案的人也用 git 解决了他的问题,所以我把它移到了列表的第一位。

以上是关于新的 Angular CLI 项目 core-js@2.6.9 安装后错误的主要内容,如果未能解决你的问题,请参考以下文章

angular学习笔记---通过angular/cli建一个新的项目

Angular2 使用 npm reflect-metadata 或 core-js/es7/reflect

如何在 Angular CLI 6: angular.json 中添加 Sass 编译?

使用 angular/cli 设置新项目时出错

vue兼容ie9-11

vue兼容ie9-11