NodeJS '致命错误:无法找到本地的grunt,':如果我有一个全球性的,为什么要问本地的咕噜声?

kg7wmglp  于 2023-01-25  发布在  Node.js
关注(0)|答案(4)|浏览(127)

我是Node.js的新手,试图使用grunt-contrib-concat从多个源文件构建我的javascript库。
我已经创建了一个虚拟环境,激活了它,全局安装了gruntgrunt-cli,为我的项目编写了Gruntfile.jspackage.json文件。

$ nodenv NODEENV
$ source NODENV/bin/activate
(NODEENV)$ npm install -g grunt-cli
...
(NODEENV)$ npm install -g grunt
...
(NODEENV)$ cd myproject
(NODEENV)$ ls myproject
Gruntfile.js package.json src test README.md
(NODEENV)$ grunt test
grunt-cli: The grunt command line interface. (v0.1.13)

Fatal error: Unable to find local grunt.

If you're seeing this message, either a Gruntfile wasn't found or grunt
hasn't been installed locally to your project. For more information about
installing and configuring grunt, please see the Getting Started guide:

http://gruntjs.com/getting-started

我不明白的是,如果我已经有了一个全局安装的grunt,为什么grunt-cli告诉我它想要一个本地的每个项目的grunt版本?
你还能建议一种纠正错误的方法吗?

nhaq1z21

nhaq1z211#

这是由于npm's foldering

  • 如果您要安装它,请在本地安装它。
  • 如果您打算在命令行上运行它,请全局安装它。

Gruntfile本身取决于require('grunt')是否可用,需要本地安装。

$ npm install grunt

而且,将grunt(1)作为可用命令使得使用该工具更加容易,需要全局安装。

$ npm install -g grunt-cli

不过,要同时拥有这两个文件夹,必须将其安装在这两个文件夹中。

9w11ddsr

9w11ddsr2#

从项目目录运行npm install。对于每个项目,Grunt需要驻留在项目的npm_modules目录中,以便项目声明它使用的是正确的grunt版本(可能与全局版本不同)。

bybem2ql

bybem2ql3#

这就是它的工作方式。你总是需要:

npm install -g grunt-cli
npm install grunt
agxfikkp

agxfikkp4#

如果这些命令在使用/不使用sudo时不起作用。

npm install -g grunt-cli
npm install grunt

或者你会得到这样的错误
第一节第一节第一节第一节第一次
然后按照以下步骤操作。
1.运行npm config list,然后检查注册表项值。它可能类似于:
registry = "https://npm.some.domain.other.than.global.com/"
1.如果您在步骤1中找到了您案例,则运行命令
npm config set registry https://registry.npmjs.com/
成交!
现在,如果package.json包含grunt库名,则可以运行npm install
否则

npm install -g grunt-cli
npm install grunt

现在可以了。

相关问题