OP EDIT: Si quelqu'un d'autre trouve ceci: l'application a été créée avec create-react-app , ce qui limite l'importation dans le dossier src. Toutefois, si vous mettez à niveau les scripts de réaction vers la version 1.0.11 , vous pourrez accéder à package.json.
J'essaie d'obtenir le numéro de version de package.json dans mon application.
J'ai déjà essayé ces suggestions , mais aucune d'entre elles n'a fonctionné car je ne peux pas accéder à package.json de l'extérieur du dossier src (cela peut être dû à React, je suis novice dans ce domaine). Déplacer package.json dans src signifie alors que je ne peux pas exécuter npm install
, npm version minor
, et npm run build
de mon dossier racine. J'ai essayé d'utiliser process.env.npm_package_version
mais cela aboutit à undefined.
J'utilise Jenkins, et je ne l'ai pas encore configuré pour Push the commits up, mais la seule idée que j'ai est de récupérer la version à partir des balises dans GitLab, mais je ne sais pas comment le faire, et Cela ajouterait une dépendance inutile à la prise en pension, alors j'aimerais vraiment trouver une alternative.
EDIT: Ma structure de fichier est comme:
--> RootAppFolder
|--> build
|--> node_modules
|--> public
|--> src
|--> Components
|--> Root.js
|
|--> package.json
Donc, pour accéder à package.json à partir de Root.js, je dois faire import packageJson from './../../package.json'
et puis j'obtiens l'erreur suivante:
./src/components/Root.js
Module introuvable: vous avez tenté d'importer ./../../package.json qui se trouve en dehors du répertoire src/du projet. Les importations relatives en dehors de src/ne sont pas prises en charge. Vous pouvez soit le déplacer à l'intérieur de src /, soit lui ajouter un lien symbolique à partir de node_modules/du projet.
De votre édition, je suggère d'essayer
import packageJson from '/package.json';
Vous pouvez également essayer de créer un lien symbolique:
# From the project root.
cd src; ln -s ../package.json package.alias.json
Répertoriez le contenu du répertoire src et vous verrez le lien symbolique.
ls
#=> package.alias.json -> ../package.json
Ajout du .alias
aide à réduire la magie des autres et de votre futur moi en regardant cela. De plus, cela aidera les éditeurs de texte à les séparer. Tu me remercieras plus tard. Assurez-vous simplement de mettre à jour votre code JS pour importer de ./package.alias.json
au lieu de ./package.json
.
Jetez également un coup d’œil à cette question: La restriction d’importations create-react-app en dehors du répertoire src
Résoudre ce problème sans importer ni exposer package.json
au create-react-app
Nécessite: version 1.1.0 + de create-react-app
.env
REACT_APP_VERSION=$npm_package_version
REACT_APP_NAME=$npm_package_name
index.js
console.log(`${process.env.REACT_APP_NAME} ${process.env.REACT_APP_VERSION}`)
Note: la version (et beaucoup d'autres param de configuration npm ) est accessible
Essaye ça.
// in package.json
"version": "1.0.0"
// in index.js
import packageJson from '../package.json';
console.log(packageJson.version); // "1.0.0"