Node.js mailparser模块错误:无法find模块'iconv'

我正在努力学习node.js,并且正在玩弄这里find的imap和mailparser示例代码 。 我根据在各自的github页面上find的自述文件中的说明安装了imap和mailparser ,并且一切安装正常,没有任何错误。 试图运行示例代码时,出现以下错误:

Error: Cannot find module 'iconv'

安装模块后,我的项目目录结构如下所示:

 ~/ProjectDir | -- node_modules | | | -- imap | | | | | -- LICENSE | | -- README.md | | -- imap.js | | -- package.json | -- mailparser | | | | | -- lib | | | | | | | -- datetime.js | | | -- mailparser.js | | | -- streams.js | | -- node_modules | | | | | | | -- iconv | | | | ... | | | -- mimelib | | | | ... | | -- test | | | ... | | -- LICENSE | | -- README.md | | -- package.json | | ... | -- config.json | -- mailFether.js | -- readme.md 

所以,基于我为这个问题所做的一些Googlesearch,我注意到这个“无法find模块”的错误似乎是一个相当普遍的错误,但我已经能够看到一个一致的解决scheme问题。

这里的问题是在mailparser文件夹中嵌套的node_modules目录吗? 该文件夹的内容是否应该位于项目根目录下的node_modules文件夹中? 这是项目设置问题还是环境问题?

只要尝试安装iconv模块: npm install iconv – 然后看看这个命令的输出,iirc iconv生成一个二进制文件,在这种情况下这可能会失败,那么我们应该弄清楚为什么它会失败 – 但在这种情况下,只有在提供安装命令的输出时才有所帮助。

这里的问题是在mailparser文件夹中嵌套的node_modules目录吗?

不,这没关系,这是npm的工作原理。 模块的所有依赖关系都存储在嵌套的node_module文件夹中。