安装完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
 
重试:
