2017-03-17 7 views
0

Hier Installation ist mein package.json:eine benutzerdefinierte Version eines Pakets mit NPM

{ 
    "private": true, 
    "devDependencies": { 
    "axios": "^0.15.2", 
    "jquery": "^3.1.0", 
    "laravel-mix": "^0.8", 
    "lodash": "^4.16.2", 
    "phantomjs-prebuilt": "^2.1.7", 
    "vue": "^2.0.1", 
    "vue-resource": "^0.9.3" 
    }, 
    "dependencies": { 
    "vue-clipboard": "0.0.1", 
    "vue-dragula": "^2.0.0-alpha" 
    } 
} 

ich ein Plugin haben, die mit vuejs 2.2.4 nicht kompatibel ist, also muss ich wirklich mit 2.0.1 bleiben , aber wenn ich einen npm install mache, installiere ich 2.2.4.

Warum respektiert es nicht versioning ???

+0

verwenden Sie entweder --exact Flag oder Sie können das gleiche 'save-exact = true' in ~/.npmrc Datei auf true :) – georoot

+0

hat nicht funktioniert. Ich habe den 'znode_modules'-Ordner entfernt und' npm install --exact' ausgeführt und erhalte immer noch ├── [email protected] in den Ergebnissen –

+0

--exact ist, wenn Sie installieren. Sie sehen das Symbol '^', das die neueste Version installiert. Entfernen Sie das und legen Sie die gewünschte Version fest. Dann starte npm install. Sie müssen '--exact' setzen, wenn das Paket nicht in' package.json' enthalten ist und Sie zum ersten Mal installieren :) – georoot

Antwort

1

Das Problem ist Symbol ^ in package.json Datei. Dadurch wird automatisch die neueste Paketversion installiert. Jetzt ist der richtige Weg, dies zu umgehen ist das Hinzufügen

save-exact=true 

in ~/.npmrc, die automatisch das ^ Zeichen entfernen wird während der Installation. Dies würde zukünftige Versionsänderungen für Installationen desselben Pakets verhindern.

Verwandte Themen