mvn构建AngularJS项目时npm install报错-1073741819问题咨询
故障根因说明
处理器代际差异本身不会直接导致构建失败,报错中的退出码-1073741819对应Windows平台原生错误0xC0000005 (STATUS_ACCESS_VIOLATION),属于内存访问违例错误,本质是构建过程中调用的原生程序和11代酷睿设备的运行环境存在兼容性冲突,和CPU硬件本身无直接关联。
排查修复方案
- 固定Node、npm的64位LTS版本
frontend-maven-plugin会自动下载指定版本的Node到项目本地目录,不会复用全局安装的Node。11代酷睿(Tiger Lake架构)对Node 12及更早的32位版本存在指令集兼容问题,极易触发该内存错误。先在pom.xml的frontend-maven-plugin配置块中,将Node、npm版本固定为和正常构建设备完全一致的64位LTS版本,推荐配置如下:<configuration> <nodeVersion>v16.20.2</nodeVersion> <npmVersion>8.19.4</npmVersion> </configuration> - 清空历史依赖缓存
删掉本地Maven仓库路径下的com/github/eirslett目录,同时删除项目根目录下的node、node_modules文件夹,避免之前下载的损坏、架构不匹配的二进制文件被复用,再重新执行mvn clean install。 - 校验JDK架构
执行java -version检查当前使用的JDK版本,如果输出信息中没有64位标识,说明安装的是32位JDK,会触发插件下载32位版本的Node,在新硬件+新Windows系统环境下兼容性极差,卸载后重装64位JDK即可。 - 检查系统安全防护配置
11代酷睿机型默认预装开启的内核隔离(内存完整性)、第三方杀毒软件的进程防护功能,会拦截Node进程的内存读写操作,直接触发访问违例报错。临时关闭内核隔离、退出第三方安全软件后重试构建即可验证。 - 单独验证Node运行状态
进入项目中frontend-maven-plugin存放Node二进制的目录(默认为项目根目录下的node/文件夹),手动执行.\node.exe -v和.\node.exe npm install,如果手动执行同样触发崩溃,可直接判定为Node二进制文件和系统不兼容,手动替换对应版本的64位Node.exe到该目录即可解决。
补充说明
不存在11代i7无法构建AngularJS项目的通用兼容性问题,同配置跨设备构建失败,绝大多数情况是依赖版本不匹配、运行时架构错误、系统安全拦截导致的,和CPU硬件代际无直接关系。
内容的提问来源于stack exchange,提问作者Ramya
相关产品推荐
相关产品推荐

