“致命错误:找不到本地咕unt声。” 运行“ grunt”命令时


73

我使用以下命令卸载了grunt。

npm uninstall -g grunt

然后我再次使用以下命令安装了grunt。

npm install -g grunt-cli

请访问以下链接:https : //npmjs.org/package/grunt-html

我想使用上面的grunt插件

但是,当我运行grunt命令时,它给了我以下错误:

D:\nodeJS\node_modules\grunt-html>grunt
grunt-cli: The grunt command line interface. (v0.1.6)

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

3
我不知道这与jQuery有什么关系。您必须按照文档中的说明在项目目录中安装grunt:gruntjs.com/getting-started#installing-grunt-and-gruntplugins。错误消息还显示:“ [...]或grunt尚未在您的项目本地安装。”
Felix Kling

我已在项目目录中成功安装grunt。现在我该如何使用该插件
Ashwin Hegde 2013年

1
您安装插件并按照其项目页面(链接到该页面)上的说明进行操作。
Felix Kling 2013年

Answers:


176

一切都在gruntjs.com上很好地解释了。

请注意,安装grunt-cli不会安装grunt任务运行程序!grunt CLI的工作很简单:运行Gruntfile旁边已安装的grunt版本。这允许将grunt的多个版本同时安装在同一台计算机上。

因此,在您的项目文件夹中,您将需要安装(最好是)最新的grunt版本

npm install grunt --save-dev

Option--save-devgrunt作为dev-dependency添加到您的package.json中。这使得重新安装依赖项变得容易。


3
我没有投票给您,但可能是因为您的第二行是不必要的且过于花哨的行为而完成的。
whitneyland

3
@LeeWhitney我删除了这一行,我的意思是错误消息提到了入门指南的链接,该指南应该是寻找答案的第一个地方。
asgoth 2013年

20

您必须在项目文件夹中安装grunt

  1. 创建您的package.json

    $ npm init
    
  2. 为此项目安装grunt,它将安装在下node_modules/。--save-dev会将这个模块添加到package.json中的devDependency中

    $ npm install grunt --save-dev
    
  3. 然后创建gruntfile.js并运行

    $ grunt 
    

2
另外,请确保正在创建node-modules文件夹。我不是因为npm有global=true配置。我发现这里的解决方案:stackoverflow.com/a/13449393/1046584
路易斯Bianchin的


4

我在Windows咕unt咕had中有此问题,因为我在64位Windows OS上安装了32位版本的Node。当我专门安装64位版本时,它开始工作。


1
向我+1 ...我不知道为什么这被否决了。这似乎是咕unt声失败的一个完全合理的原因。
Michael Martin-Smucker 2014年

1

我今天在Windows 32位,节点0.10.25和grunt 0.4.5上遇到了同样的问题。

我遵循dongho的回答,仅执行了几个额外的步骤。这是我用来解决错误的步骤:

1)创建您的package.json

$ npm init

2)为此项目安装grunt,它将安装在node_modules /下。--save-dev将此模块添加到package.json中的devDependency中

$ npm install grunt --save-dev

3)然后gruntfile.js使用以下示例代码创建:

module.exports = function(grunt) {

  grunt.initConfig({
    jshint: {
      files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
      options: {
        globals: {
          jQuery: true
        }
      }
    },
    watch: {
      files: ['<%= jshint.files %>'],
      tasks: ['jshint']
    }
  });

  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-contrib-watch');

  grunt.registerTask('default', ['jshint']);

};

在这里,src/**/*.js并且test/**/*.js应该是你正在使用你的项目的路径,以实际JS文件

4)运行 npm install grunt-contrib-jshint --save-dev

5)运行 npm install grunt-contrib-watch --save-dev

6)运行 $ grunt

注意:当您需要诸如concat,uglify等通用软件包时,您需要通过来添加这些模块npm install,就像我们安装jshint并在步骤4和5中观察的方式一样



1

这为我解决了这个问题。我错误地使用以下方法安装了grunt:

sudo npm install -g grunt --save-dev

然后在项目文件夹中运行以下命令:

npm install

这导致了问题作者看到的错误。然后,我使用以下命令卸载了grunt:

sudo npm uninstall -g grunt

删除了node_modules文件夹。并使用以下命令重新安装grunt:

npm install grunt --save-dev

并在项目文件夹中运行以下命令:

npm install

出于某种奇怪的原因,当您使用-g全局安装grunt然后将其卸载时,node_modules文件夹会保留某些阻止grunt本地安装到项目文件夹的内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.