我无法在 ubuntu 20.04 中安装 nestjs

I can't install nestjs in ubuntu 20.04

我正在使用 Ubuntu 20.04 LTS,我试图安装 nestjs 来学习,但是......好吧,最好展示一下发生了什么

首先我试图发现我的 npm 或节点是哪个版本,结果是:

$ npm - v

output: 6.14.16

$ node -v

output: v14.19.1

理论上我可以安装nest,对吧?好吧,我 运行 这个代码:

$ npm i -g @nestjs/cli

output: /home/user/.npm-global/bin/nest -> 
/home/user/.npm-global/lib/node_modules/@nestjs/cli/bin/nest.js
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/@nestjs/cli/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

+ @nestjs/cli@8.2.3
updated 1 package in 17.045s

我认为这个输出看起来很奇怪,尽管如此我还是试图发现是否安装了 nest

$ nest -v

output: Command 'nest' not found, did you mean:

  command 'newt' from snap newt (0.0.1)
  command 'net' from deb samba-common-bin (2:4.13.17~dfsg-0ubuntu0.21.04.1)
  command 'next' from deb mailutils-mh (1:3.7-2.1)
  command 'next' from deb mmh (0.4-2)
  command 'next' from deb nmh (1.7.1-6)
  command 'test' from deb coreutils (8.30-3ubuntu2)
  command 'nast' from deb nast (0.2.0-7build1)
  command 'neat' from deb neat (2.2-1build1)
  command 'nes' from deb fceux (2.2.2+dfsg0-1build1)
  command 'nes' from deb mednafen (1.22.2+dfsg-1build1)
  command 'nes' from deb nestopia (1.50-1build1)

See 'snap info <snapname>' for additional versions.

我是这个开发领域的新手 'and this is my first post here!' 但我感谢您对我的问题的关注(而且我不是来自美国,所以我的英语可能有很多错误,抱歉!)

有两种方法可以解决您的问题:

  1. 在每个 nestjs 命令之前使用 npx:
  npx @nestjs/cli g controller pages
  1. 在您的 .bashrc 或 .zshrc 中添加一个别名(取决于您使用的是哪个):

    要查找您的节点路径,请在您的终端中输入:

  which node

  which nodejs

然后,当你有你的节点路径时:

  alias nest="/your/path/to/node/bin/nest"

然后在你的终端中你可以测试

  nest --version

它应该有效

我注意到您目前使用的是旧版本的节点包管理器 (npm),您需要先升级它才能安装 nest.js...这些是步骤

第 1 步。使用此命令清理缓存,然后如果您在轨道上,您将收到一条消息“我当然希望您知道自己在做什么”

sudo npm cache clean -f

第 2 步. 安装 Node 的版本管理器

sudo npm install -g n

第三步.安装稳定版

sudo n stable

稳定版没问题,但你也可以安装最新版本sudo n latest。但我希望你最终不会遇到另一个挑战