运行Grunt命令报错:Cannot find module 'has' 求助
解决Grunt命令中"Cannot find module 'has'"的问题
环境信息
- grunt-cli版本:0.1.13
- Node版本:6.17.1
- npm版本:3.10.10
报错信息
PS C:\workspace\ui\test\ui> grunt module.js:478 throw err; ^ Error: Cannot find module 'has' at Function.Module._resolveFilename (module.js:476:15) at Function.Module._load (module.js:424:25) at Module.require (module.js:504:17) at require (internal/module.js:20:19) at Object.<anonymous> (C:\Users\6110853\AppData\Roaming\nvm\v6.17.1\node_modules\grunt-cli\node_modules\is-core-module\index.js:3:11) at Module._compile (module.js:577:32) at Object.Module._extensions..js (module.js:586:10) at Module.load (module.js:494:32)
解决方案
从报错路径能看出,问题出在全局安装的grunt-cli依赖缺失,不是项目本地node_modules的问题,之前的操作没针对全局依赖处理,所以无效。按以下步骤操作:
- 卸载全局grunt-cli
npm uninstall -g grunt-cli
- 清理npm缓存(npm 3版本缓存容易出问题)
npm cache clean --force
- 重新全局安装适配当前Node版本的grunt-cli
npm install -g grunt-cli@0.1.13
处理项目本地依赖
- 删除项目目录下的
node_modules文件夹和package-lock.json(如果存在)
Windows命令:
类Unix命令:rd /s /q node_modules del package-lock.jsonrm -rf node_modules package-lock.json - 重新安装本地依赖
npm install
- 删除项目目录下的
再次执行
grunt命令测试
备选快速修复
如果不想重新安装全局grunt-cli,可直接给全局grunt-cli补充缺失的依赖:
npm install -g has
内容的提问来源于stack exchange,提问作者manasa venkatesh
相关产品推荐
相关产品推荐

