2012-05-18 181 views
4

我正在努力学习的Node.js,并正与the imap and mailparser sample code found here玩耍。我根据在各自的GitHub网页中的自述文件中的说明安装了imapmailparser,一切安装罚款没有任何错误。当试图运行示例代码,我得到以下错误:Node.js的mailparser模块错误:无法找到模块“的iconv”

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 

因此,基于一些google搜索,我已经为这个问题做了,我已经注意到,这种“无法找到模块”错误似乎是一个相当普遍的,但我已经能够看到一个一致的解决问题的办法。

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

+0

可以添加你的代码?为什么node_modules中的config.json,mailFether.js和readme.md?或者你忘了一些'--'? – Charles

回答

2

只要尝试安装iconv模块:npm install iconv - 并查看该命令的输出,iirc iconv会生成一个二进制文件,这可能会在某些情况下失败,那么我们应该弄清楚它为什么会失败 - 但在这种情况下如果您提供install命令的输出,则只能提供帮助。

Is the problem here the nested node_modules directory in the mailparser folder?

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