找不到嵌套命令

Posted

技术标签:

【中文标题】找不到嵌套命令【英文标题】:nest Command not found 【发布时间】:2019-09-12 06:55:10 【问题描述】:

我按照documentation 创建了我的第一个 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

【问题讨论】:

【参考方案1】:

使用npx @nestjs/cli 而不是nest

例如npx @nestjs/cli g controller pages

【讨论】:

【参考方案2】:

我在安装 npm 时也遇到了同样的控制台错误!

错误是

 @nestjs/cli

npm WARN 已弃用 resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN 已弃用 urix@0.1.0:请参阅 https://github.com/lydell/urix#deprecated npm WARN 已弃用 chokidar@2.1.8:Chokidar 2 将在节点 v14+ 上中断。升级到 chokidar 3,依赖项减少 15 倍。 npm WARN 已弃用 fsevents@1.2.13:fsevents 1 将在节点 v14+ 上中断,并且可能使用不安全的二进制文件。升级到 fsevents 2。 npm WARN checkPermissions 缺少对 /usr/local/lib/node_modules/@nestjs/cli 的写访问权限 npm WARN checkPermissions 缺少对 /usr/local/lib/node_modules/@nestjs 的写访问权限 npm WARN notsup watchpack-chokidar2@2.0.0 不支持的引擎:想要:“node”:“

我是如何安装的 => 解决方案

sudo npm install -g @nestjs/cli

【讨论】:

永远不要将 SUDO 与 NPM 一起使用,因为它可能会导致安全问题【参考方案3】:

我遇到了同样的问题,我所做的是:

npm install npm@latest -g安装了最新的节点

然后将以下内容添加到我的 .bash_profile

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

nest --version 测试过,它工作正常。

由于某种原因,路径调用不正确,希望对您有所帮助。

【讨论】:

请注意,这不会起作用,因为他使用的是 zsh 而不是 bash。他需要为他的 ~/.zshrc 做同样的事情。【参考方案4】:

以下命令适用于我的 Windows 10

node -v 
v14.16.0
 
npm -v
6.14.11

npx @nestjs/cli new project-name

【讨论】:

【参考方案5】:

您必须将以下行添加到您的 ~/.zshrc 文件中:

source $HOME/.bashrc

这是必需的,以便 npm 二进制文件在启动时可用。

【讨论】:

还是一样的结果。有效的方法是将alias nest="/usr/local/lib/node_modules/node/lib/node_modules/node/lib/node_modules/@nestjs/cli/bin/nest.js 添加到我的~/.zshrc 文件中。但不确定这是不是最好的解决方案,因为未来的 npm 将需要一个额外的别名。【参考方案6】:

在阅读 NestJS/Mongo DB 教程时,我偶然发现了同样的问题。在尝试了上面列出的所有解决方案之后,甚至将我的默认配置文件改回 bash 而不是使用 zsh,我发现只需将 /usr/local/bin 和 ~/.npm-global/bin 添加到我的路径变量即可解决问题。希望这对将来可能会偶然发现此问题的其他人有所帮助。

导出 $PATH="/usr/local/bin"

export $PATH="~/.npm-global/bin"

我从 iTerm2 运行的两个命令是为了将它们添加到我的 PATH 环境变量中。完成后,一个简单的

env

显示了我的 $PATH 环境变量中的条目,nest -v 命令正常工作。

【讨论】:

【参考方案7】:

我在使用 GitBash 时遇到了同样的错误。 我解决了它: 如果您使用窗户: 你使用 CMD:npm i -g @nestjs/cli

然后就可以使用gitbash了:

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

【讨论】:

【参考方案8】:

我遇到了同样的问题并解决了,遵循这个

    写命令NPM root -g 检查 NPM 的安装位置 将其添加到您的路径环境变量中

【讨论】:

【参考方案9】:

你可以尝试使用sudo

sudo yarn global add @nestjs/cli

【讨论】:

以上是关于找不到嵌套命令的主要内容,如果未能解决你的问题,请参考以下文章

jquery嵌套时找不到id,但不嵌套时找到

在嵌套结构指令中找不到父服务

Dexie,嵌套集合时找不到对象

在 react-router 中找不到嵌套路由的字体

Mat Table 中的嵌套反应表单找不到控件

link_to嵌套资源路由找不到ID