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