ubuntu 如何成功升级lodash:升级故障排除

y1aodyip  于 2023-10-17  发布在  其他
关注(0)|答案(3)|浏览(136)

当尝试在Node.js目录中升级lodash时,我遇到了以下错误:
错误1:

sudo npm install lodash@latest
npm WARN saveError ENOENT: no such file or directory, open '/usr/share/nodejs/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/usr/share/nodejs/package.json'
npm WARN nodejs No description
npm WARN nodejs No repository field.
npm WARN nodejs No README data
npm WARN nodejs No license field.

+ [email protected]
updated 1 package and audited 1 package in 0.384s
found 0 vulnerabilities

错误2:

/usr/share/nodejs/lodash$ sudo npm install lodash@latest
npm ERR! code ENOSELF
npm ERR! Refusing to install package with name "lodash" under a package
npm ERR! also called "lodash". Did you name your project the same
npm ERR! as the dependency you're installing?
npm ERR!
npm ERR! For more information, see:
npm ERR!     <https://docs.npmjs.com/cli/install#limitations-of-npms-install-algorithm>

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2023-03-20T03_12_36_652Z-debug.log

我还注意到,当我在其他目录中运行upgrade命令时,lodash安装在/home/ubuntu/node_modules/目录中。但是,我不确定是否需要更新/usr/share/nodejs目录中的lodash,因为当我使用npm list lodash时,它是唯一显示版本信息的目录。此外,我没有在node_modules目录中安装lodash,我不知道该怎么处理它。
此外,在nodejs目录下有许多与lodash相关的文件。这些文件的功能是什么,它们都与lodash有关吗?“

hsgswve4

hsgswve41#

我认为你在全球范围内安装了软件包。一次尝试:npm update -g <package_name>

brvekthn

brvekthn2#

我的package.json文件和lodash版本

要更新lodash版本,只需使用命令npm install lodash@<lodash_version>
例如:npm install [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
使用此命令后轻松更新lodash版本

roqulrg3

roqulrg33#

这个问题涉及到Node.js包管理和lodash更新的一些复杂性。首先,让我解释一下我遇到的错误,并提供一些建议。

错误1:

npm WARN saveError ENOENT: no such file or directory, open '/usr/share/nodejs/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/usr/share/nodejs/package.json'
npm WARN nodejs No description
npm WARN nodejs No repository field.
npm WARN nodejs No README data
npm WARN nodejs No license field.

+ [email protected]

发生此错误的原因是/usr/share/nodejs目录中没有package.json文件。npm需要有效的package.json文件来管理依赖项和配置。要解决此问题,您可以在该目录中创建一个简单的package.json文件,然后再次运行npm install lodash@latest命令。下面是一个package.json文件示例:

{
  "name": "nodejs",
  "version": "1.0.0",
  "description": "Node.js project",
  "main": "index.js",
  "dependencies": {
    "lodash": "^4.17.21"
  }
}

错误二:

npm ERR! code ENOSELF
npm ERR! Refusing to install package with name "lodash" under a package
npm ERR! also called "lodash". Did you name your project the same
npm ERR! as the dependency you're installing?

此错误表示您正尝试在与lodash同名的软件包下安装lodash。这通常是由于有一个与lodash包同名的项目目录引起的。要解决此问题,您可以尝试以下操作:
1.您的项目目录:将项目目录重命名为与lodash包名称不同的名称,然后再次尝试运行npm install lodash@latest。
1.全球安装:如果你只想全局安装lodash,而不是在你的项目目录中,你可以使用-g标志进行全局安装,以避免与你的项目目录冲突。你可以这样做:
sudo npm install -g lodash@latest
关于node_modules目录,它是Node.js项目存储其依赖项的目录。它通常是自动创建和管理的,因此您不需要手动干预它。
至于nodejs目录下的lodash文件,这些文件可能是lodash包的一部分,也可能是其他与Node.js相关的文件。您可以使用npm list lodash命令来检查项目中lodash的当前安装状态。如果你只想在特定的项目中使用lodash,你可以在该项目目录中运行npm install lodash,而不是全局安装。

相关问题