J'essaie de construire mon projet jekyll en mode production en utilisant la variable JEKYLL_ENV mais cela ne fonctionne pas.
La documentation Jekyll spécifie de définir un environnement production
dans la commande build:
set JEKYLL_ENV=production & jekyll build
Mais sous Windows, ce type de syntaxe n'est pas correct. J'ai utilisé la syntaxe suivante, mais cela ne semble pas fonctionner:
setx JEKYLL_ENV production & jekyll build
J'ai également défini «manuellement» cette variable d'environnement mais ne prend pas effet:
jekyll build JEKYLL_ENV=production
et
JEKYLL_ENV=production jekyll build
3 Réponses :
J'ai également rencontré cela avec ma configuration Windows / Jekyll. Ma solution de contournement est d'avoir des fichiers de configuration de production et de développement et de définir la variable environment
dans chaque fichier.
// some file that will be processed by Jekyll {% if site.environment == "production" %} <do prod stuff> {% elsif site.environment == "development" %} <do dev stuff> {% endif %}
Votre environnement prod doit exécuter jekyll build code > qui utilise automatiquement
_config.yml
. Votre environnement de développement doit exécuter jekyll
. Dans la documentation de configuration Jekyll , "Paramètres dans les fichiers de [config] ultérieurs remplacer les paramètres des fichiers précédents. " Ainsi, vous pouvez définir la variable dans les fichiers de configuration prod et dev et utiliser --config _config.yml, _config_dev.yml
pour définir la variable dans dev.
Pour faire des choses avec dans Jekyll, utilisez des instructions Liquid pour vérifier la variable d'environnement. Les fichiers de configuration définissent les variables site
, vérifiez donc site.environment
// _config.yml environment: production ...<other config settings>... -------- // _config_dev.yml environment: development
Sous Windows, vous devez exécuter deux commandes:
la première commande définit env en production
set JEKYLL_ENV=development
la deuxième commande exécute jekyll build
ou jekyll server
jekyll build
lorsque vous utilisez development evn, exécutez à nouveau cette commande:
set JEKYLL_ENV=production
p >
Cela a fonctionné pour moi. Ce que je fais, c'est utiliser set JEKYLL_ENV = production
juste avant d'exécuter jekyll build
. Une fois qu'il a été construit pour la production, je le remets en développement avec set JEKYLL_ENV = development
.
C'est ce dont j'avais besoin! Tellement habitué à travailler sur Mac, la clé ici est de définir cet set
au début. Merci.
Cela a fonctionné pour moi:
set JEKYLL_ENV=production | jekyll build
L'exécution des deux commandes séparément comme Thxopen a suggéré a fonctionné. Ensuite, j'ai essayé d'exécuter les deux commandes sur une ligne en utilisant le caractère de séparation comme mentionné ici , et cela a bien fonctionné.