求助:Yeoman生成器运行时出现大量非预期警告的解决办法
解决Yeoman生成器运行时大量非预期警告的问题
看起来你遇到的警告是由于旧版本yeoman-generator依赖的shelljs库和较新Node.js版本(14+)不兼容导致的。下面提供两种可行的解决方案:
方案一:升级yeoman-generator到最新稳定版
这是最推荐的解决方式,新版本的yeoman-generator已经修复了这类依赖兼容性问题,同时还能获得更多新特性和Bug修复。
- 在项目根目录执行以下命令升级依赖:
npm install yeoman-generator@latest --save
- 检查你的生成器代码:你的代码比较基础,新版本对CommonJS的支持依然友好,不需要做太多改动。核心方法如
constructor、prompting、writing在新版本中依然兼容,几乎可以直接复用。
方案二:强制指定兼容的shelljs版本
如果暂时无法升级yeoman-generator,可以通过强制锁定shelljs版本来解决警告问题:
如果你使用Yarn:
在package.json中添加resolutions字段:
{ "name": "generator-diego", "version": "0.0.1", "description": "First Yo generator", "files": [ "generators" ], "keywords": [ "yeoman-generator" ], "dependencies": { "yeoman-generator": "^1.0.0" }, "resolutions": { "shelljs": "0.8.5" } }
然后执行yarn install重新安装依赖。
如果你使用NPM:
- 先安装
npm-force-resolutions工具:
npm install npm-force-resolutions --save-dev
- 在
package.json的scripts中添加预安装脚本:
{ "name": "generator-diego", "version": "0.0.1", "description": "First Yo generator", "files": [ "generators" ], "keywords": [ "yeoman-generator" ], "dependencies": { "yeoman-generator": "^1.0.0" }, "devDependencies": { "npm-force-resolutions": "^0.0.10" }, "scripts": { "preinstall": "npx npm-force-resolutions" } }
- 执行
npm install重新安装依赖。
为什么这能解决问题?
你使用的yeoman-generator@1.0.0依赖的是较旧版本的shelljs,这些旧版本在Node.js 14及以上版本中,因为使用了一些已被废弃的Node.js API(比如child_process的某些选项),所以会触发大量警告。升级yeoman-generator会自动引入兼容新版本Node.js的shelljs版本;而强制指定shelljs@0.8.5是因为这个版本是最后一个完全兼容Node.js 14+且不会触发这些警告的旧版本分支。
完成上述操作后,再运行yo diego测试,应该就不会再看到那些非预期的警告了。
内容的提问来源于stack exchange,提问作者Diego Satizabal
相关产品推荐
相关产品推荐

