如何使用 Node.js 解决“找不到模块”错误?
从github拉下模块并按照指令构建它后,我尝试使用以下方式将其拉入现有项目中:
084737328
这似乎可以解决问题:
488785689
但是Node.js找不到模块:
002167526
我真的想了解正在发生的事情在这里,但是我对接下来的位置有些损失。有什么建议吗?
使用
npm install
只会将模块安装到当前目录中(在名为
node_modules
的子目录中)。app.js 是否位于
home/dave/src/server/
下?如果不是,并且您想从任何目录使用该模块,则需要使用
npm install -g
全局安装它。
我通常在本地安装大多数软件包,以便它们与我的项目代码一起签入。
更新(2019 年 8 月):
现在您可以使用
package-lock.json
文件,该文件是在 npm 修改您的 node_modules 目录时自动生成的。因此,您可以省去签入软件包的麻烦,因为
package-lock.json
会跟踪您当前正在使用的 node_modules 的确切版本。要从
package-lock.json
而不是
package.json
安装软件包,请使用命令
npm ci
。
更新(2016 年 3 月):
我收到了很多关于我回复的批评,特别是我签入了我的代码所依赖的软件包。几天前,有人取消发布了他们的所有软件包 ( https://kodfabrik.com/journal/i-ve-just-liberated-my-modules ) ( 存档在 Wayback Machine ),这破坏了 React、Babel 以及几乎所有其他东西。希望现在很清楚,如果您有生产代码,您不能依赖 NPM 为您维护依赖项。
我遇到了非常类似的问题。删除整个
node_modules
文件夹并重新安装对我有用:
rm -rf node_modules
npm install
npm install --save module_name
例如,如果错误是:
{ [Error: Cannot find module '/root/.npm/form-data'] code: 'MODULE_NOT_FOUND' }
那么您可以通过执行命令
npm install --save form-data
来解决此问题。