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

时间:2012-05-18 14:44:54

标签: node.js imap

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

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

所以,基于我为这个问题所做的一些谷歌搜索,我注意到这个“找不到模块”错误似乎是一个相当普遍的错误,但我已经能够看到一致解决问题。

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

1 个答案:

答案 0 :(得分:2)

尝试安装iconv模块:npm install iconv - 看看这个命令的输出,iirc iconv构建一个二进制文件,这可能会失败,然后我们应该找出它失败的原因 - 但是在这种情况下,只有在提供install命令的输出时才能提供帮助。

  

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

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