【问题标题】:Node.js: module not found after installing it with npm -gNode.js:使用 npm -g 安装后找不到模块
【发布时间】:2021-02-26 02:04:35
【问题描述】:

我已经安装了tar-module 使用

npm install -g tar

当我输入时

npm list -g --depth=0

我可以在模块树中看到条目 tar@6.1.0,但是当我尝试在 js 文件 const tar = require("tar") 中要求它时,我收到错误消息

Uncaught Exception:
Error: Cannot find module 'tar'

我错过了什么?

【问题讨论】:

  • 要在 .js 程序中使用库,您必须在本地安装它们,而不是全局安装。全局模块适用于命令行实用程序。
  • 啊,好的,非常感谢。因此,如果我想在多个项目中使用一个库,我仍然需要为每个项目都在本地安装它吗?
  • 是的,你必须在你使用的每个项目中安装它。这也有助于将库保存在 package.json 中,如果您将其移动到其他位置,一个简单的 npm install 会为您带来库。

标签: node.js npm node-modules


【解决方案1】:

这里的问题是您试图在本地项目中使用全局安装的东西。如果您使用npm i tar 将它们安装在项目中,您应该能够使用您的库。

我们在全球范围内安装某些东西的原因是为了在许多项目的开发过程中使用。这样,我们不必在每个项目上都安装工具。但是,对于您想在项目代码中使用的东西,您应该将其安装在项目级别。这样,项目需要工作的所有内容都存在于项目本身内部。您应该会看到 package.json 文件中列出的所有依赖项

不提倡你这样做,但如果你真的想包含全局安装的库,你可以这样做:

require('./../../.npm-global/lib/node_modules/tar'); // Relative path to library

从文件目录到 $HOME 目录的位置,进入 node 的默认全局安装位置并将其带入。这是​​不好的做法,请不要这样做,但这里有信息。

【讨论】:

    猜你喜欢
    • 2021-12-29
    • 2020-01-17
    • 1970-01-01
    • 2012-09-17
    • 2014-06-10
    • 1970-01-01
    • 2011-11-12
    • 2016-09-26
    • 2019-12-12
    相关资源
    最近更新 更多