安装完cnpm以后,在node项目中运行:cnpm install命令时,报出“Error:Cannot find module ‘fs/promises”错误。
$ cnpm install internal/modules/cjs/loader.js:670 throw err; ^ Error: Cannot find module 'fs/promises' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:668:15) at Function.Module._load (internal/modules/cjs/loader.js:591:27) at Module.require (internal/modules/cjs/loader.js:723:19) at require (internal/modules/cjs/helpers.js:14:16) at Object.<anonymous> (D:\nvm\v11.15.0\node_global\node_modules\cnpm\node_modules\npminstall\bin\install.js:7:12) at Module._compile (internal/modules/cjs/loader.js:816:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:827:10) at Module.load (internal/modules/cjs/loader.js:685:32) at Function.Module._load (internal/modules/cjs/loader.js:620:12) at Function.Module.runMain (internal/modules/cjs/loader.js:877:12)
原因1:
package.json和package-lock.json里打包工具版本不一致
原因2:
是Node.js版本太低导致的(也可以说是cnpm版本太高),由于低版本的Node.js对于promises的引入方式与高版本的是不一样,而cnpm版本太高的话,Node是不支持’fs/promises’引入方式的。
解决方案:
1、升级Node.js版本:
//清理npm缓存 $ npm cache clean -f //安装版本管理工具 $ npm install -g n //升级到最新的版本 $ n latest(最新版本) $ n stable(最新稳定版本)
2、降低cnpm的版本:
//删除已安装的cnpm版本 $ npm uninstall -g cnpm //安装低版本cnpm $ npm install cnpm@7.1.0 -g --registry=https://registry.npm.taobao.org
重试: