【问题标题】:nyc not recognized as command after installation安装后 nyc 无法识别为命令
【发布时间】:2020-12-16 23:49:22
【问题描述】:

我对 node.js、npm 和 JavaScript 非常陌生,但为了尝试使用 Istanbul 工具进行代码覆盖,因此安装了 nycnpm i nyc 指的是 https://www.npmjs.com/package/nyc,其输出类似于

C:\Users\user>npm i nyc
npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\user\package.json'
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\user\package.json'
npm WARN user No description
npm WARN user No repository field.
npm WARN user No README data
npm WARN user No license field.

+ nyc@15.1.0
updated 1 package in 1.334s

9 packages are looking for funding
  run `npm fund` for details

但是当我点击nyc o 命令提示符时,它说 - nyc is not Recognized as internal or external command。

根据文档,我添加了 dev 依赖项,但看到了相同的错误。

C:\Users\user>npm i -D nyc
npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\user\package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\user\package.json'
npm WARN user No description
npm WARN user No repository field.
npm WARN user No README data
npm WARN user No license field.

+ nyc@15.1.0
added 142 packages from 99 contributors in 48.325s

9 packages are looking for funding
  run `npm fund` for details

请指导我这里出了什么问题。

【问题讨论】:

  • `C:\Users\user` 有package.json 文件吗?
  • 不,它不存在。我无法找到从哪里获取它以及内容应该是什么

标签: node.js npm istanbul nyc


【解决方案1】:

转到项目的根文件夹。
运行npm init,这将创建 package.json 文件。
然后运行npm i nyc

如果您想将其安装为开发依赖项,请使用以下命令。

npm install --save-dev nyc

【讨论】:

  • 我做了npm init -y,然后npm i nyc,但在命令提示符下仍然是nyc,给出了同样的错误。
  • 我们已将 nyc 安装为 devDependency。您应该在 package.json 脚本部分编写您的命令,即 nyc 并使用 npm run <script-name> 命令运行它。有关详细信息,请阅读此link
【解决方案2】:

我有同样的问题。就我而言,这是因为我的 Windows 用户名中有一个空格。是“名字姓氏”。

我有两个解决方案。

  1. 您可以从 win 商店安装 wsl 和 Ubuntu LTE,然后为可视化代码添加扩展,这样您就可以运行 Linux 终端了。它将悬停需要为 Linux 和所有其他人员安装节点。
  2. 您可以创建新的 windows 用户并在“运行方式”模式下使用 VS Code。 (移位和右键单击)。如果您没有为所有用户安装 VS Code,则必须为这个新创建的用户添加访问权限。

我选择了第二种解决方案,它对我有用。

【讨论】:

    【解决方案3】:

    有两种方法可以完成这项工作

    1. 安装 nyc 作为开发依赖项
    2. nyc 安装为全局依赖项

    注意:对我来说,将其安装为开发依赖项要好得多。

    让我们运行 npm i nyc -D 。这是要做什么?这将在你的 package.json 和 node_modules 中找到这个包。您无法通过 cli 运行它的原因是它没有在系统变量中注册。那么我们如何运行它,你可能会说?我们在 package.json 中创建一个script

    scripts:{
      "nyc: "nyc"
    }
    

    要运行它,只需 npm run nyc

    现在让我们将其安装为全局依赖项。将包安装为全局依赖,意味着我们不会将包添加到 package.json 和 node_modules 中,但如果它是 CLI,那么它会将自身注册为系统变量。

    npm i -g nyc
    nyc
    

    【讨论】:

      【解决方案4】:

      你可以试试“npm intsall -g nyc”。

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 2016-02-28
      • 2018-01-01
      • 2019-01-03
      • 1970-01-01
      • 2012-10-22
      • 2016-09-14
      • 2018-08-17
      • 2017-09-29
      • 2016-01-01
      相关资源
      最近更新 更多