我正在努力学习node.js,并且正在玩 the imap and mailparser sample code found here.我根据各自github页面上的自述文件中的说明安装了 imap和 mailparser,所有安装都没有任何错误.尝试运行示例代码时,出
错误:找不到模块’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
所以,基于我为这个问题所做的一些谷歌搜索,我注意到这个“找不到模块”错误似乎是一个相当常见的错误,但我已经能够看到一个一致的解决方案问题.
这里的问题是mailparser文件夹中嵌套的node_modules目录吗?该文件夹的内容是否应该位于项目根目录下的node_modules文件夹中?这是项目设置问题还是环境问题?
只是尝试安装iconv模块:npm install iconv – 看看这个命令的输出,iirc iconv构建一个二进制文件,这可能会失败,然后我们应该找出它失败的原因 – 但在这种情况下可以只有在提供install命令的输出时才有帮助.Is the problem here the nested node_modules directory in the mailparser folder?
不,这没关系,这就是npm的工作原理.模块的所有依赖项都存储在嵌套的node_module文件夹中.