Pour notre application Electron, nous avons besoin d'une version spécifique de pixi.js (5.0.0-rc.3). Dans notre package.json nous avons donc spécifié "pixi.js": "^ 5.0.0-rc.3",
.
Lorsque nous exécutons npm install
maintenant et ouvrons notre application, le message de bienvenue de pixi et l'état package-lock.json version 5.0.4. Nous avons essayé de supprimer le dossier node_modules
et de réinstaller tous les modules, mais il a toujours la mauvaise version.
Notre déclaration d'importation dans le fichier html est const PIXI = require ('pixi.js');
et cela devrait obtenir la version installée localement de pixi si je ne me trompe pas.
Est-ce un bug? Ou est-ce exprès (si oui, dans quel but)?
<❯Mise à jour
Comme il y a maintenant des réponses et des commentaires, voici ce que nous avons essayé jusqu'à présent:
package-lock.json
, le dossier node_modules (localement et globalement) et exécutez à nouveau npm i
Mise à jour 2
Il y a trois réponses maintenant et aucune n'a pu résoudre le problème jusqu'à présent, je commence à croire que ce n'est pas ma faute, mais peut-être un bug avec Pixi JS. J'ai ouvert un problème sur leur page GitHub , peut-être qu'ils peuvent vous aider. p>
3 Réponses :
Si vous souhaitez installer une version spécifique, n'utilisez pas ~
ou ^
dans package.json
, utilisez exactement la version p >
Le tilde ~ correspond à la version de patch la plus récente (le troisième numéro) pour la version mineure spécifiée (le deuxième nombre).
~ 1.2.3 correspondra à toutes les versions 1.2.x mais restera à 1.3.0.Le signe curseur ^ est plus détendu. Il correspond à la version mineure la plus récente (le deuxième nombre) pour la version majeure spécifiée (le premier numéro).
^ 1.2.3 correspondra à n'importe quelle version 1.x.x , y compris la version 1.3.0, mais attendez 2.0.0.
Dans votre cas: "pixi.js": "5.0.0-rc.3"
De: Quelle est la différence entre tilde (~ ) et caret (^) dans package.json?
Merci beaucoup! Malheureusement, j'ai fait toutes les étapes et il installe toujours le 5.0.4. Je suis vraiment déçu car je pensais que c'était le problème ...: |
J'ai essayé d'installer manuellement, il a installé. Alors, peut-être que vous pouvez l'installer manuellement.
J'ai essayé cela aussi, après l'avoir supprimé du package.json
mais dans l'application, il affiche toujours 5.0.4. Qu'est-ce que votre package-lock.json
état après avoir exécuté ceci?
En supprimant ce bit, dans mon verrou de paquet, il est affiché 5.0.4
et non 5.0.0. Vous devez peut-être diriger l'installation de npm à partir de github. Je vais vérifier et poster ici. C'est peut-être le problème de pixi.js, pas le vôtre.
Ouais, la même chose se passe sur mon PC. Peut-être qu'ils ont redirigé tout le monde de 5.0.0-rc-3
vers 5.0.4
à cause d'un bogue ou quelque chose de similaire.
@creyD Cela semble très improbable. Êtes-vous sûr d'avoir supprimé le répertoire node_modules et exécuté à nouveau npm-install?
@slebetman ouais je l'ai fait. J'ai supprimé les node_modules locaux et globaux, réinstallé nodeJS (donc npm), supprimé package-lock et reran npm install
et la console indique toujours la version 5.0.4, tout comme le package-lock nouvellement créé.
La console affiche même pendant l'installation > pixi.js@5.0.0-rc.3 postinstall PATH \ node_modules \ pixi.js> node scripts / support-pixi.js
Réponse originale
Si vous avez absolument besoin de cette version, vous devez:
package.json
en "pixi.js": "5.0.0-rc.3"
. package-lock.json
ou npm-shrinkwrap.json
existant. npm i
En faisant cela, vous épinglez votre dépendance à cette version spécifique.
Consultez également cette calculatrice semver . Vous pouvez charger le package pixi.js. Entrez ensuite 5.0.0-rc.3
et ^ 5.0.0-rc.3
. Il vous montrera comment le ^
change le comportement de recherche de correspondances.
J'ai trouvé que la calculatrice aide souvent visuellement à mieux comprendre les mathématiques semver que la lecture de la documentation ne le fait pour certaines personnes.
J'espère que cela vous aidera!
Réponse mise à jour
Si vous regardez le fichier package-lock.json et regardez les dépendances pour pixi.js
toutes les dépendances utilisent le ^
et n'épinglent pas la version à 5.0.0-rc3
. Au lieu de cela, ils sont forcés de passer à la dernière version du correctif, qui est 5.0.4
et un paramètre côté NPM / pixis, pas le vôtre.
"pixi.js": { "version": "5.0.0-rc.3", "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-5.0.0-rc.3.tgz", "integrity": "sha512-+B6ZMvJNEz/IoiC+BrwP9PsDonEAj4TOZw+yuZ/K8WQokcSm9uAp3PJ+6eFFWTjnkxsAcMP9tgldmDdTFoAF7w==", "requires": { "@pixi/accessibility": "^5.0.0-rc.3", "@pixi/app": "^5.0.0-rc.3", "@pixi/constants": "^5.0.0-rc.3", "@pixi/core": "^5.0.0-rc.3", "@pixi/display": "^5.0.0-rc.3", "@pixi/extract": "^5.0.0-rc.3", "@pixi/filter-alpha": "^5.0.0-rc.3", "@pixi/filter-blur": "^5.0.0-rc.3", "@pixi/filter-color-matrix": "^5.0.0-rc.3", "@pixi/filter-displacement": "^5.0.0-rc.3", "@pixi/filter-fxaa": "^5.0.0-rc.3", "@pixi/filter-noise": "^5.0.0-rc.3", "@pixi/graphics": "^5.0.0-rc.3", "@pixi/interaction": "^5.0.0-rc.3", "@pixi/loaders": "^5.0.0-rc.3", "@pixi/math": "^5.0.0-rc.3", "@pixi/mesh": "^5.0.0-rc.3", "@pixi/mesh-extras": "^5.0.0-rc.3", "@pixi/mixin-cache-as-bitmap": "^5.0.0-rc.3", "@pixi/mixin-get-child-by-name": "^5.0.0-rc.3", "@pixi/mixin-get-global-position": "^5.0.0-rc.3", "@pixi/particles": "^5.0.0-rc.3", "@pixi/polyfill": "^5.0.0-rc.3", "@pixi/prepare": "^5.0.0-rc.3", "@pixi/runner": "^5.0.0-rc.3", "@pixi/settings": "^5.0.0-rc.3", "@pixi/sprite": "^5.0.0-rc.3", "@pixi/sprite-animated": "^5.0.0-rc.3", "@pixi/sprite-tiling": "^5.0.0-rc.3", "@pixi/spritesheet": "^5.0.0-rc.3", "@pixi/text": "^5.0.0-rc.3", "@pixi/text-bitmap": "^5.0.0-rc.3", "@pixi/ticker": "^5.0.0-rc.3", "@pixi/utils": "^5.0.0-rc.3" } },
Il semble que si vous voulez que cela fonctionne, et je vous conseillerais simplement de mettre à jour votre application pour qu'elle fonctionne avec le package mis à jour au lieu de le faire, vous devrez
5.0.0-rc3
, https://github.com/pixijs/pixi.js/tree/v5.0.0-rc.3 package.json
pour rendre toutes ses dépendances 5.0.0-rc.3
au lieu de ^ 5.0.0-rc.3
Merci beaucoup! Malheureusement, j'ai fait toutes les étapes et il installe toujours le 5.0.4.
BTW: la calculatrice semver n'a montré que le 5.0.0-rc.3 et rien d'autre.
Je pense que je vois quel est le problème. J'ai mis à jour ma réponse pour refléter ce que je vois.
TL; DR La solution est de spécifier explicitement les versions exactes des sous-modules @pixi dans votre package.json
comme ceci:
... "@pixi/core": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@pixi/core/-/core-5.0.4.tgz", "integrity": "sha512-P2K2JJC+BFZrRZT9P0+Ir8jd7VrH6w7/L1Njg2+iSetW9TdjkPahR+w93VGwpEzEkrYHoNs6FbSFCY38P/6g8A==", "requires": { "@pixi/constants": "^5.0.4", "@pixi/display": "^5.0.4", "@pixi/math": "^5.0.4", "@pixi/runner": "^5.0.4", "@pixi/settings": "^5.0.4", "@pixi/ticker": "^5.0.4", "@pixi/utils": "^5.0.4" } }, ... "pixi.js": { "version": "5.0.0-rc.3", "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-5.0.0-rc.3.tgz", "integrity": "sha512-+B6ZMvJNEz/IoiC+BrwP9PsDonEAj4TOZw+yuZ/K8WQokcSm9uAp3PJ+6eFFWTjnkxsAcMP9tgldmDdTFoAF7w==", "requires": { "@pixi/accessibility": "^5.0.0-rc.3", "@pixi/app": "^5.0.0-rc.3", "@pixi/constants": "^5.0.0-rc.3", "@pixi/core": "^5.0.0-rc.3", "@pixi/display": "^5.0.0-rc.3", "@pixi/extract": "^5.0.0-rc.3", "@pixi/filter-alpha": "^5.0.0-rc.3", "@pixi/filter-blur": "^5.0.0-rc.3", "@pixi/filter-color-matrix": "^5.0.0-rc.3", "@pixi/filter-displacement": "^5.0.0-rc.3", "@pixi/filter-fxaa": "^5.0.0-rc.3", "@pixi/filter-noise": "^5.0.0-rc.3", "@pixi/graphics": "^5.0.0-rc.3", "@pixi/interaction": "^5.0.0-rc.3", "@pixi/loaders": "^5.0.0-rc.3", "@pixi/math": "^5.0.0-rc.3", "@pixi/mesh": "^5.0.0-rc.3", "@pixi/mesh-extras": "^5.0.0-rc.3", "@pixi/mixin-cache-as-bitmap": "^5.0.0-rc.3", "@pixi/mixin-get-child-by-name": "^5.0.0-rc.3", "@pixi/mixin-get-global-position": "^5.0.0-rc.3", "@pixi/particles": "^5.0.0-rc.3", "@pixi/polyfill": "^5.0.0-rc.3", "@pixi/prepare": "^5.0.0-rc.3", "@pixi/runner": "^5.0.0-rc.3", "@pixi/settings": "^5.0.0-rc.3", "@pixi/sprite": "^5.0.0-rc.3", "@pixi/sprite-animated": "^5.0.0-rc.3", "@pixi/sprite-tiling": "^5.0.0-rc.3", "@pixi/spritesheet": "^5.0.0-rc.3", "@pixi/text": "^5.0.0-rc.3", "@pixi/text-bitmap": "^5.0.0-rc.3", "@pixi/ticker": "^5.0.0-rc.3", "@pixi/utils": "^5.0.0-rc.3" } }, ...
Merci pour votre réponse! Je l'ai spécifié dans package.json, j'ai supprimé le verrou et les node_modules et j'ai exécuté npm i
mais mon package-lock ne ressemble pas au vôtre et si j'ouvre l'application, il affiche toujours 5.0.4. À présent, je suis vraiment désolé, j'espérais que votre solution fonctionnerait: |
Si je fais les étapes exactes comme vous l'avez fait dans une nouvelle application, le verrouillage du package a le même aspect!
@creyD J'ai ajouté une note à ma réponse car j'avais du mal à rédiger un long commentaire depuis l'application mobile.
Oh, attendez! Je dois ajouter chaque sous-module au package.json? Je pensais que le module global et le noyau étaient suffisants. Je vais l'essayer maintenant!
Cela a fonctionné et a résolu le problème. J'ai ajouté toutes les dépendances et modules et réinstallé et la version était finalement 5.0.0-rc.3
pouvez-vous réessayer de supprimer
package-lock.json
et / ounpm-shrinkwrap
?A fait les deux, installe toujours 5.0.4. @AritraChakraborty
Si vous avez un package-lock.json, exécuter
npm ci
au lieu denpm install
ne fera jamais muter le package.json / package-lock.json et devrait garantir les mêmes versions.Vous avez en fait spécifié que vous vouliez la version
5.anything ..
. Si vous voulez UNIQUEMENT5.0.0-rc.3
spécifier"pixi.js": "5.0.0-rc.3"
- supprimez le^ < / code> signe
@slebetman Merci pour le tuyau! Malheureusement, cela n'a pas corrigé l'erreur.
Je l'ai testé sur ma machine et je peux garantir à 100% que l'installation de pixi.js 5.0.0-rc.3 n'installe pas la version 5.0.4. Êtes-vous sûr d'avoir supprimé l'ancienne version 5.0.4 de votre disque? Npm ne supprimera pas les fichiers de votre disque. L'exécution de
npm install
ne rétrogradera pas pixi.js. Vous devez tout supprimer (normalement le répertoire node_modules mais je ne connais pas votre pipeline de build Electron) et exécuter à nouveaunpm install
J'ai réinstallé le nœud JS 10.16. sur ma machine, supprimé le dossier local et global node_modules, changé l'entrée en
"pixi.js": "5.0.0-rc.3",
, supprimé le fichier package-lock et exécuté NPM installez à nouveau et il affiche toujours 5.0.4 dans la console et le fichier de verrouillage du package. J'utilise la dernière version de Windows 10.J'ai essayé cela avec la dernière version du nœud JS maintenant, cela ne fonctionne toujours pas.