4

我正在努力学习 node.js,并且正在玩在这里找到的 imap 和 mailparser 示例代码。我根据各自 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项目根目录的文件夹中?这是项目设置问题还是环境问题?

4

1 回答 1

2

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

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

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

于 2014-08-15T11:50:54.133 回答