嵌套命令未找到。

29

我按照文档创建了我的第一个NestJS项目。

使用命令npm i -g @nestjs/cli安装Nest CLI成功。

输出如下:

+ @nestjs/cli@6.3.0
updated 1 package in 11.326s

然而,当我尝试使用Nest CLI来搭建一个项目时:

nest new project-name

我遇到了下面的错误:

zsh: command not found: nest

关于我的环境的一些细节:

  • OSX
  • iTerm
  • npm版本6.5.0
18个回答

42

使用npx @nestjs/cli代替nest

例如:npx @nestjs/cli g controller pages


12

当我使用npm安装时,我也遇到了相同的控制台错误!

错误信息如下:

 @nestjs/cli

npm警告:resolve-url@0.2.1已弃用:https://github.com/lydell/resolve-url#deprecated

npm警告:urix@0.1.0已弃用,请参见https://github.com/lydell/urix#deprecated

npm警告:Chokidar 2不支持node v14+,请升级到更少依赖的chokidar 3。

npm警告:fsevents@1.2.13将在node v14+上失效,并可能使用不安全的二进制文件。请升级到fsevents 2。

npm警告:缺少对/usr/local/lib/node_modules/@nestjs/cli的写访问权限

npm警告:缺少对/usr/local/lib/node_modules/@nestjs的写访问权限

npm警告:watchpack-chokidar2@2.0.0的不支持引擎:期望值为{"node":"<8.10.0"}(当前:{"node":"12.14.1","npm":"6.13.4"})

npm警告:与你的节点/npm版本不兼容:watchpack-chokidar2@2.0.0

如何解决该问题 =>解决方案

sudo npm install -g @nestjs/cli

11
绝不能在使用NPM时使用SUDO,否则可能会导致安全问题。 - Mooncake
能详细说明一下吗?无论如何,全局安装一个包需要提升权限。有没有绕过这个问题的方法? - ikoza
好的,这是它的链接:https://github.com/sindresorhus/guides/blob/main/npm-global-without-sudo.md - ikoza

6

以下命令在我的Windows 10上运行正常

node -v 
v14.16.0
 
npm -v
6.14.11

npx @nestjs/cli new project-name

3

我之前遇到相同的问题,我做了以下步骤:

使用 npm install npm@latest -g 安装最新版本的 node。

然后在我的 .bash_profile 文件中添加了以下内容:

alias nest="/usr/local/Cellar/node/11.9.0/bin/nest"

使用 nest --version 进行测试,验证通过。

出于某些原因,路径未被正确调用,希望这会有所帮助。


请注意,这不起作用,因为他正在使用zsh而不是bash。他需要为他的~/.zshrc执行相应的操作。 - Jonathan Nielsen

2

在尝试了所有答案之后,我使用了自己的方法

  1. 在我的Mac终端中安装 npm i -g @nestjs/cli

  2. 通过在Mac终端中键入 open ~/.bash_profile 打开macOS的bash文件。就像您可以在任何地方输入它一样。

  3. 你的bash将看起来像这样,高亮区域是为嵌套JS CLI而准备的 你的 bash 将看起来像这样,并使用这行命令:

    alias nest="~/.npm-global/lib/node_modules/@nestjs/cli/bin/nest.js"

  4. 重启你的Mac使更改反映在你的终端中。

  5. 你现在可以在全局范围内使用nestjs cli了,如下图所示。 应该看起来像这样


1
我在学习NestJS和Mongo DB教程时遇到了同样的问题。尝试了上面列出的所有解决方案,甚至将默认配置文件从zsh改回bash,最终发现将/usr/local/bin和~/.npm-global/bin添加到我的路径变量中就可以解决问题。希望这能对未来遇到这个问题的其他人有所帮助。
导出$PATH="/usr/local/bin"
export $PATH="~/.npm-global/bin"

这是我在iTerm2中运行的两个命令,目的是将它们添加到我的PATH环境变量中。完成后,只需简单执行

env

显示了我的$PATH环境变量中的条目,nest -v命令没有任何问题。


1

我曾经面对过同样的问题并通过以下方式解决:

  1. 输入命令NPM root -g
  2. 检查NPM安装位置
  3. 将其添加到路径环境变量中

1

我在使用GitBash时遇到了同样的错误。

我解决了它:

如果你使用的是Windows:

请使用CMD命令行工具: npm i -g @nestjs/cli

然后您可以使用GitBash:

  • 检查nestjs版本:nest --version
  • 创建nestjs应用程序:nest new name_project

1
这对我有用:
npm install @nestjs/cli --global

那么

nest

将会可用


0
我遇到了同样的问题。
我尝试了所有删除npm代理的命令,但都没有帮助。
在许多情况下,其他一些服务会阻止您的网络,比如您的防病毒软件。
您可以尝试通过重新启动系统来安装。这也有助于使您运行的命令(如删除代理的npm配置)生效。
简单来说,尝试重新启动并再次安装您的Nest js。
这在我的情况下有所帮助,可能也会对您有帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接