WebStrom提交代码到GitLab报错Error: Cannot find any-observable implementation nor global.Observable.

项目场景:

前端代码完成后,提交代码


问题描述

提交代码到GitLab时,因自动检测机制导致项目提交失败

c 复制代码
C:\D\insper\inspur_works\custom-manage-front\node_modules\any-observable\register.js:29
		throw new Error('Cannot find any-observable implementation nor' +
		^
Error: Cannot find any-observable implementation nor global.Observable. You must install polyfill or call require("any-observable/register") with your preferred implementation, e.g. require("any-observable/register")('rxjs') on application load prior to any require("any-observable").
    at loadImplementation (C:\D\insper\inspur_works\custom-manage-front\node_modules\any-observable\register.js:29:9)
    at register (C:\D\insper\inspur_works\custom-manage-front\node_modules\any-observable\loader.js:32:18)
    at Object.<anonymous> (C:\D\insper\inspur_works\custom-manage-front\node_modules\any-observable\index.js:2:39)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:\D\insper\inspur_works\custom-manage-front\node_modules\stream-to-observable\index.js:2:18)
pre-commit hook failed (add --no-verify to bypass)
	}

原因分析:

1、提交代码时自动检查代码的机制,导致检测未通过,导致无法提交


解决方案:

根据原因分析,有以下两种具体解决方案:

1、提交时,删除代码检测钩子pre-commit;

2、分析问题出现的具体原因对症解决。

1、Git 钩子是在特定的 Git 事件触发时执行的自定义脚本或命令。pre-commit 钩子是在 Git 提交(commit)操作之前执行的,它允许你在代码提交之前进行一些自定义的检查和操作,以确保提交的代码符合一些规范或标准。通常,pre-commit 钩子的相关文件位于 Git 仓库的 .git/hooks/ 目录下,具体的文件名是 pre-commit(无文件扩展名)。这个文件通常是一个可执行脚本,可以用于执行各种检查。
注:一般不建议这种操作,除非特别紧急且确认要提交的代码基本没问题。删除前做好备份,代码提交后,将删除的文件恢复!

2、分析问题具体原因:

通过报错提示可以看出是由于缺少相关依赖导致的检测出错,根据报错提示定位到问题;

很明显,根据代码提示安装rxjs:执行 npm install rxjs。问题基本解决。