2015-10-26 14 views
7

Recentemente ho installato Node.js, NPM, ionica e Cordova, come descritto in Ionic Getting StartedErrore pacchetto di lettura: graceful-fs package.json

Ora, quando apro il mio progetto di Visual Studio finestra Bower/NPM visualizza la seguente errore:

System.AggregateException: One or more errors occurred. ---> Microsoft.NodejsTools.Npm.PackageJsonException: Error reading package.json at 'C:\Users\Colin\AppData\Roaming\npm\node_modules\cordova\node_modules\npm\node_modules\graceful-fs\package.json': Error reading package.json. The file may be parseable JSON but may contain objects with duplicate properties.

Questo sembra essere dovuto ad un problem with the npm package. Quindi come posso aggirare questo? Installo una versione precedente di Node, npm, cordova o graceful-fs? E come lo faccio?

EDIT In seguito al commento da Vikas Vats ho corse i seguenti comandi:

cordova -v mi hanno detto la mia versione globale è 5.3.3

npm uninstall -g cordova

npm install -g [email protected]

Ora ricevo lo stesso errore riportato in graceful-fs\package.json ma questa volta è in un altro l ocation:

C:\Users\Colin\AppData\Roaming\npm\node_modules\ionic\node_modules\ionic-app-lib\node_modules\ionic-cordova-lib\node_modules\npm\node_modules\graceful-fs\package.json

+1

Il tuo grazioso-fs modulo ha il suo file issue.Open package.json in notepad e verificare se c'è chiavi duplicate in questa vita. Reinstallare solo il pacchetto Cordova. –

+0

@VikasVats Sì, ci sono chiavi duplicate, come elencato nel problema di npm a cui mi sono collegato. Ho provato a reinstallare una versione precedente di Cordova, ora ho un problema con graceful-fs/package.json installato come dipendenza dal mio 'ionic-app-lib'. (vedi la mia modifica) Sto pensando di installare una versione precedente di 'npm', quindi reinstallare ogni pacchetto che mi dà un errore, ma sono un principiante con' npm', quindi gradirei qualsiasi consiglio – Colin

+0

hai la tua risposta su quel problema github –

risposta

0

ho disinstallato Cordova - portandolo alla versione di Visual Studio è stato testato con:

npm uninstall -g cordova 

npm install -g [email protected] 

Questo spostato l'errore ionica. Così ho poi preso ionico torna alla versione 1.6.5:

npm uninstall -g ionic 

npm install -g [email protected] 

Questa fisso il file graziosa-fs/package.json. Ho copiato il contenuto qui:

{ 
    "author": { 
    "name": "Isaac Z. Schlueter", 
    "email": "[email protected]", 
    "url": "http://blog.izs.me" 
    }, 
    "name": "graceful-fs", 
    "description": "A drop-in replacement for fs, making various improvements.", 
    "version": "2.0.0", 
    "repository": { 
    "type": "git", 
    "url": "git://github.com/isaacs/node-graceful-fs.git" 
    }, 
    "main": "graceful-fs.js", 
    "engines": { 
    "node": ">=0.4.0" 
    }, 
    "directories": { 
    "test": "test" 
    }, 
    "scripts": { 
    "test": "tap test/*.js" 
    }, 
    "keywords": [ 
    "fs", 
    "module", 
    "reading", 
    "retry", 
    "retries", 
    "queue", 
    "error", 
    "errors", 
    "handling", 
    "EMFILE", 
    "EAGAIN", 
    "EINVAL", 
    "EPERM", 
    "EACCESS" 
    ], 
    "license": "BSD", 
    "readme": "# graceful-fs\n\ngraceful-fs functions as a drop-in replacement for the fs module,\nmaking various improvements.\n\nThe improvements are meant to normalize behavior across different\nplatforms and environments, and to make filesystem access more\nresilient to errors.\n\n## Improvements over fs module\n\ngraceful-fs:\n\n* keeps track of how many file descriptors are open, and by default\n limits this to 1024. Any further requests to open a file are put in a\n queue until new slots become available. If 1024 turns out to be too\n much, it decreases the limit further.\n* fixes `lchmod` for Node versions prior to 0.6.2.\n* implements `fs.lutimes` if possible. Otherwise it becomes a noop.\n* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or\n `lchown` if the user isn't root.\n* makes `lchmod` and `lchown` become noops, if not available.\n* retries reading a file if `read` results in EAGAIN error.\n\nOn Windows, it retries renaming a file for up to one second if `EACCESS`\nor `EPERM` error occurs, likely because antivirus software has locked\nthe directory.\n\n## Configuration\n\nThe maximum number of open file descriptors that graceful-fs manages may\nbe adjusted by setting `fs.MAX_OPEN` to a different number. The default\nis 1024.\n", 
    "readmeFilename": "README.md", 
    "bugs": { 
    "url": "https://github.com/isaacs/node-graceful-fs/issues" 
    }, 
    "_id": "[email protected]", 
    "_from": "[email protected]" 
} 

Ho anche provato il successivo rilascio ionico - 1.7.0 e il più recente - 1.7.7.Il problema è tornato, quindi mi bastone con 1.6.5 per ora

Riferimento Ionic releases

0

Da https://github.com/npm/npm/issues/9965

Aprire C:\Users\Colin\AppData\Roaming\npm\node_modules\ionic\node_modules\ionic-app-lib\node_modules\ionic-cordova-lib\node_modules\npm\node_modules\graceful-fs\package.json in un editor di testo e rimuovere le chiavi principali duplicate:

  • motori
  • gitHead
  • bug
  • homepage
  • _id
  • _shasum
  • _dal
  • _npmVersion
  • _nodeVersion
  • _npmUser
  • dist
  • repository
  • versione

Le chiavi root dovrebbe essere presente solo una volta in package.json

+0

Sì, avevo chiesto una soluzione alternativa lì. Immagino che questo potrebbe risolvere il problema, ma i tasti ripetuti hanno valori diversi, quindi sono preoccupato di rompere qualcos'altro eliminando quello sbagliato. Invece sono tornato alle versioni precedenti per ora. – Colin

Problemi correlati