2
votes

Comment créer une production de projet Jekyll avec la ligne de commande Windows

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


0 commentaires

3 Réponses :


8
votes

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 --config _config.yml, _config_dev.yml . 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


0 commentaires

2
votes

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 >


2 commentaires

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.



1
votes

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é.


0 commentaires