2014-04-01 6 views
7

Ho lavorato con la mia app NW per alcune settimane senza problemi. Sto iniziando a portare altri collaboratori nel mio repository per test e ho deciso di scrivere uno script di installazione piuttosto che forzarli a installare manualmente le dipendenze. Oggi, dopo aver eseguito lo script di installazione per testare, ho provato a fare funzionare la mia app e ottenuto il seguente errore:L'applicazione NodeWebkit in esecuzione non riesce con: package.json non valido Errore "main" richiesto

Invalid package.json 
Field 'main' is required. 

ho fatto nessuna modifica alla mia domanda, o per il mio file package.json. Io non riesco a capire quello che potrebbe essere la causa del problema, ma ci sembra essere una questione aperta su GitHub repo di NW che parla di questo:

https://github.com/rogerwang/node-webkit/issues/1503

Mi chiedo se qualcun altro sta vivendo questo, e cosa potresti aver fatto per risolvere questo problema?

Ecco alcune informazioni importanti sulla mia app.

node-webkit: v0.8.5 
node.js: v0.10.22 
Chromium: 30.0.1599.66 
bower: 1.3.1 
yeoman: 1.1.2 

Ho cercato di ottenere la versione per nodewebkit sé, ma il comando nodewebkit non offre una bandiera di versione.

L'installazione di script di shell

npm install bower -g 
npm install yeoman -g 
npm install generator-node-webkit -g 
npm install nodewebkit -g 
npm install grunt-cli -g 
bower install 
npm install 

Il mio albero di directory (da root):

├── Gruntfile.js 
├── app 
│ ├── css 
│ │ ├── main.css 
│ ├── index.html 
│ ├── js 
│ │ ├── application.js 
│ └── package.json 
├── bower.json 
├── package.json 

Il mio file package.json più interna, all'interno della mia cartella app principale:

{ 
    "name": "directory", 
    "main": "index.html", 
    "version": "0.0.1", 
    "single-instance": true, 
    "window": { 
     //"toolbar": false, 
     "title": "Directory", 
     "width": 850, 
     "height": 600, 
     "min_width": 850, 
     "min_height": 600 
    }, 
    "chromium-args": "--child-clean-exit" 
} 

Ed ecco il pacchetto più esterno.json:

{ 
    "name": "directory", 
    "version": "0.0.0", 
    "main": "app/index.html", 
    "description": "", 
    "keywords": [], 
    "dependencies": { 
    "xls-to-json": "~0.2.0" 
    }, 
    "devDependencies": { 
    "matchdep": "~0.1.2", 
    "grunt": "~0.4.1", 
    "grunt-contrib-copy": "~0.4.1", 
    "grunt-contrib-sass": "~0.4.1", 
    "grunt-contrib-concat": "~0.1.3", 
    "grunt-contrib-jshint": "~0.4.3", 
    "grunt-contrib-clean": "~0.4.1", 
    "grunt-contrib-rename": "0.0.3", 
    "grunt-contrib-compress": "~0.5.3", 
    "xls-to-json": "~0.2.0" 
    }, 
    "engines": { 
    "node": ">=0.8.0" 
    } 
} 

risposta

9

Quindi, c'è un bug registrato nel repository nodewebkit, ma per ora ho trovato una soluzione. Andare nella directory node_modules (dove nodewebkit è installato) nella directory nodewebkit e rinominare package.json in _package.json.

Sembra che ci sia un conflitto con il file package.json e l'ordine di lettura dei file.

Quindi qualcosa come 'cd [percorso ai moduli nodo]/node_modules/nodewebkit; mv package.json _package.json' dovrebbe farlo.

NOTA: Questa è solo una soluzione temporanea, che dovrebbe essere il rilascio di una correzione (si spera) presto, ma finché non lo farà ...

+0

questo funziona per me. Grazie. –