如何解决Angular项目启动时的error:0480006C:PEM routines::no start line错误?
解决Angular项目
ng serve/npm start报error:0480006C:PEM routines::no start line错误 这个错误是Node.js创建HTTPS开发服务器时,无法正确解析PEM格式的证书/密钥文件导致的,以下是针对性解决步骤:
检查HTTPS配置有效性
打开项目根目录的angular.json,定位到projects -> [你的项目名] -> architect -> serve -> options节点,确认sslCert和sslKey配置的路径是否正确,对应的文件是否存在。同时打开证书文件,确保内容为标准PEM格式:- 证书文件开头必须是
-----BEGIN CERTIFICATE-----,结尾是-----END CERTIFICATE----- - 密钥文件开头必须是
-----BEGIN PRIVATE KEY-----,结尾是-----END PRIVATE KEY-----
若文件内容为空或格式错误,直接替换或重新生成。
- 证书文件开头必须是
临时禁用HTTPS验证问题
执行命令ng serve --ssl false,若项目能正常启动,说明问题确实出在HTTPS证书配置上,专注处理证书即可。重新生成本地开发证书
若之前自动生成的证书损坏,可按以下方式重新生成:- 删除项目中旧的证书文件(通常在项目根目录的
ssl文件夹下) - 用Angular CLI命令生成新证书:
或用OpenSSL手动生成(需提前安装OpenSSL):ng serve --ssl true --ssl-cert ./ssl/localhost.crt --ssl-key ./ssl/localhost.keyopenssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes -keyout localhost.key -out localhost.crt -subj "/CN=localhost" -addext "subjectAltName=DNS:localhost,IP:127.0.0.1" - 将新生成的证书路径更新到
angular.json对应配置项中。
- 删除项目中旧的证书文件(通常在项目根目录的
清除缓存并重建依赖
缓存或依赖损坏也可能引发这类问题,执行以下命令:npm cache clean --force rm -rf node_modules package-lock.json npm install ng cache clean排查VS Code扩展干扰
重启VS Code后可能触发了某些扩展的配置变更,暂时禁用所有扩展再尝试启动项目。若恢复正常,逐个启用扩展排查出问题的那个。
内容的提问来源于stack exchange,提问作者Amr Rashad
相关产品推荐
相关产品推荐

