You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

执行npm run start报错:无法找到angular-cli模块求助

解决Angular CLI模块找不到的问题

先看看你遇到的具体错误:

Error: Cannot find module '/root/jenkins/workspace/Quality_Dashboard_backEnd_vmx1376/coc-ci/webapp_oden/node_modules/angular-cli/bin'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:509:3
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! dashboard-app@0.1.0 start: node ./node_modules/angular-cli/bin/ng serve --live-reload --host=0.0.0.0
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the dashboard-app@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

我之前在Jenkins环境部署Angular项目时也碰到过一模一样的问题,核心原因是旧版angular-cli包已经废弃,现在官方维护的包是@angular/cli,加上你的启动脚本还在引用旧包的路径,所以才会找不到模块。下面是一步步的解决方法:

1. 检查并修正package.json依赖

打开你的package.json,看看devDependencies里是不是写的angular-cli?如果是,立刻改成@angular/cli——这个包名变更已经是很多年前的事了,旧包早就停止更新,npm安装时可能根本拉不到完整的文件。

2. 彻底清理依赖和缓存

有时候npm缓存会有脏数据,或者之前的node_modules有残留,执行以下命令彻底清理:

# 删除依赖文件夹和锁文件
rm -rf node_modules package-lock.json
# 强制清理npm缓存
npm cache clean --force

3. 重新安装依赖

重新执行安装命令,确保所有依赖都正确拉取:

npm install

4. 修复启动脚本

你的start脚本现在用的是旧包的路径:node ./node_modules/angular-cli/bin/ng serve...,改成更可靠的方式——直接调用ng命令(因为安装@angular/cli后,node_modules/.bin里会自动生成ng的可执行文件,npm脚本会自动识别这个路径):
修改package.json里的scripts部分:

"scripts": {
  "start": "ng serve --live-reload --host=0.0.0.0"
}

如果担心环境变量的问题,也可以用npx来调用本地的ng:

"scripts": {
  "start": "npx ng serve --live-reload --host=0.0.0.0"
}

5. 额外检查:Jenkins权限问题

如果上面的步骤都试过还是不行,要看看Jenkins运行的用户有没有读写当前项目目录的权限——有时候Jenkins用的是root以外的用户,导致npm安装时无法写入node_modules,依赖没装全自然会找不到模块。可以在Jenkins构建步骤里加一句:

chown -R jenkins:jenkins . # 根据你的Jenkins用户组调整

完成这些步骤后再运行npm run start,应该就能解决模块找不到的问题了。

内容的提问来源于stack exchange,提问作者user8050674

火山引擎 最新活动