运行Gulp报错:Cannot find module '../package.json' 求助
Cannot find module '../package.json'的问题 看起来你遇到的这个错误根源出在gulp-sourcemaps包的文件损坏或者安装不完整上——它的utils.js文件尝试加载上级目录的package.json但找不到,大概率是这个包的安装过程出了问题,和你换Node版本关系不大。我给你几个一步步的解决方案,你可以依次尝试:
1. 彻底清理并重新安装依赖
这是最常见的解决这类模块缺失问题的方法:
- 先删除项目里的
node_modules文件夹(Windows系统用rmdir /s node_modules,Mac/Linux用rm -rf node_modules) - 删除项目根目录下的
package-lock.json文件(如果存在的话) - 清理npm缓存,避免缓存损坏的包:
npm cache clean --force - 最后重新安装所有依赖:
npm install
2. 确保在正确的目录运行Gulp命令
从你的报错路径来看,gulp-sourcemaps被安装在了子目录E:\Dadekavan\ArNikAPI\04-UserInterface\ArnikCo.UI\Features\Layout\Views\UI\Designer\node_modules里,这说明你可能是在这个子目录下运行的Gulp命令。请务必回到包含项目主package.json的根目录下执行gulp,否则Gulp会加载子目录的依赖,导致路径错乱找不到文件。
3. 指定兼容的gulp-sourcemaps版本
Gulp 3.9.1是比较老的版本,默认安装的gulp-sourcemaps可能和你使用的Node 8.x/9.x存在兼容性问题。你可以手动在项目package.json里指定一个兼容的版本:
打开package.json,在devDependencies中添加:
"gulp-sourcemaps": "^2.6.5"
然后再次运行npm install,这个版本和Gulp 3.9.1、Node 8.x/9.x都能很好兼容。
4. 检查gulpfile.js的路径引用
最后确认你的gulpfile.js里没有错误的路径引用,比如是否误引入了子目录的模块,或者是否修改过NODE_PATH环境变量导致模块加载路径错乱。
你可以先尝试前两个步骤,一般就能解决问题;如果还是不行,再尝试后面的方法。
内容的提问来源于stack exchange,提问作者MohammadJavad Seyyedi

