Ciao,
sto cercando di usare grunt partendo da un progetto esistente in cui non esiste nulla di grunt.
Sembra funzionare, perchè provando con il plugin concat ha fatto il suo mestiere. Quello che non funziona è la lettura del file package.json. vi mostro cosa ho fatto (sono alle prime armi di grunt/bower/yeoman e quindi ho ancora confusione)

Installato il node, e nei vari passaggi per bower e yoeman ho installato grunt
Window 7 è il sistema

accedo alla cartella del progetto esistente
codice:
c:\ cd apache\htdocs\myproject
inizializzo il file package.json
codice:
npm init
file package.json
codice:
{
  "name": "bsworld",
  "version": "0.1.0",
  "description": "mio progetto personale",

  "devDependencies": {
    "grunt": "~0.4.5"
  }
}
creo il file Gruntfile.js
codice:
module.exports = function(grunt) {

    // Project configuration.
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        banner:"<%= pkg.name %>"
    });

    // Load the plugin that provides the "uglify" task.
//    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.log.writeln("____________ log __________________");
    grunt.log.writeln(grunt.pkg.name);
    grunt.log.writeln();
    grunt.log.writeln();
    // Default task(s).
    grunt.registerTask('default');

}

installo localmente grunt nel progetto
codice:
npm install grunt
e qui vedo il tree nella mia cartella progetto
codice:
C:\apache\htdocs\myproject\node_modules\
└───grunt
    ├───internal-tasks
    ├───lib
    │   ├───grunt
    │   └───util
    └───node_modules
        ├───.bin
        ├───async
        │   └───lib
        ├───coffee-script
        │   ├───bin
        │   ├───extras
        │   └───lib
        │       └───coffee-script
        ├───colors
        │   └───themes
        ├───dateformat
        │   ├───lib
        │   └───test
        ├───eventemitter2
        │   └───lib
        ├───exit
        │   ├───lib
        │   └───test
        │       └───fixtures
        ├───findup-sync
        │   ├───lib
        │   ├───node_modules
        │   │   ├───glob
        │   │   │   ├───examples
        │   │   │   ├───node_modules
        │   │   │   │   ├───inherits
        │   │   │   │   └───minimatch
        │   │   │   │       ├───node_modules
        │   │   │   │       │   ├───lru-cache
        │   │   │   │       │   │   ├───lib
        │   │   │   │       │   │   └───test
        │   │   │   │       │   └───sigmund
        │   │   │   │       │       └───test
        │   │   │   │       └───test
        │   │   │   └───test
        │   │   └───lodash
        │   │       └───dist
        │   └───test
        │       └───fixtures
        │           └───a
        │               └───b
        ├───getobject
        │   ├───lib
        │   └───test
        ├───glob
        │   ├───examples
        │   ├───node_modules
        │   │   ├───graceful-fs
        │   │   │   └───test
        │   │   └───inherits
        │   └───test
        ├───grunt-legacy-log
        │   ├───node_modules
        │   │   ├───lodash
        │   │   │   └───dist
        │   │   └───underscore.string
        │   │       ├───dist
        │   │       ├───lib
        │   │       └───test
        │   │           └───test_underscore
        │   │               └───vendor
        │   └───test
        ├───grunt-legacy-util
        │   └───test
        │       └───fixtures
        ├───hooker
        │   ├───dist
        │   ├───lib
        │   └───test
        ├───iconv-lite
        │   ├───encodings
        │   │   └───table
        │   ├───generation
        │   └───test
        ├───js-yaml
        │   ├───bin
        │   ├───examples
        │   ├───lib
        │   │   └───js-yaml
        │   │       ├───schema
        │   │       └───type
        │   │           └───js
        │   └───node_modules
        │       ├───.bin
        │       ├───argparse
        │       │   ├───examples
        │       │   ├───lib
        │       │   │   ├───action
        │       │   │   │   ├───append
        │       │   │   │   └───store
        │       │   │   ├───argument
        │       │   │   └───help
        │       │   └───node_modules
        │       │       ├───underscore
        │       │       └───underscore.string
        │       │           ├───dist
        │       │           ├───lib
        │       │           └───test
        │       │               └───test_underscore
        │       │                   └───vendor
        │       └───esprima
        │           ├───bin
        │           └───test
        ├───lodash
        ├───minimatch
        │   ├───node_modules
        │   │   ├───lru-cache
        │   │   │   ├───lib
        │   │   │   └───test
        │   │   └───sigmund
        │   │       └───test
        │   └───test
        ├───nopt
        │   ├───bin
        │   ├───examples
        │   ├───lib
        │   └───node_modules
        │       └───abbrev
        ├───rimraf
        │   └───test
        ├───underscore.string
        │   ├───dist
        │   ├───lib
        │   └───test
        │       └───test_underscore
        │           └───vendor
        └───which
            └───bin
vedo che non sono compresi i plugin che credo standard, ovvero grunt-contrib* ma poco male perchè il mio primo test vuole altro

ora mi accingo ad avviare grunt con la banalità di utilizzo

codice:
grunt
risultato
C:\Apache\htdocs\bottonisworld.com>grunt
__________ log ________________
Loading "Gruntfile.js" tasks...ERROR
>> TypeError: Cannot read property 'name' of undefined
Warning: Task "default" not found. Use --force to continue.

Aborted due to warnings.

Perchè non riesce a leggere il file package.json?????
Ho provato a verificare con require se non funzionasse, ma la variabile che viene assegnata per il risultato del require ha l'oggetto json!

dove sbaglio??Mi sfugge qualcosa??