Je développe un site WordPress sur un serveur (pas local). Je veux actualiser la page dans mon navigateur chaque fois que je modifie un fichier sass. J'ai quelques tâches grunt énumérées, mais maintenant je veux juste qu'il se rafraîchir sur toute modification de sass. À l'heure actuelle, il attrape chaque fois qu'un fichier est modifié, mais il n'actualise pas la page.Grunt Watch LiveReload sur le site sur le serveur
Gruntfile:
module.exports = function(grunt) {
\t // Project configuration.
\t grunt.initConfig({
\t \t pkg: grunt.file.readJSON('package.json'),
\t \t
\t \t watch: {
\t \t \t scripts: {
\t \t \t \t options: { livereload: true },
\t \t \t \t files: ['**/*.scss'],
\t \t \t \t //tasks: ['criticalcss:front', 'criticalcss:page', 'cssmin', 'postcss'],
\t \t \t }
\t \t },
\t \t
\t \t postcss: {
\t \t \t options: {
\t \t \t \t processors: [
\t \t \t \t \t require('autoprefixer')({browsers: 'last 6 versions'}), // add vendor prefixes
\t \t \t \t \t //require('cssnano')() // minify the result
\t \t \t \t ]
\t \t \t },
\t \t \t dist: {
\t \t \t \t src: 'style.css',
\t \t \t \t dest: 'style.css'
\t \t \t }
\t \t },
\t
\t \t criticalcss: {
\t \t \t front : {
\t \t \t \t options: {
\t \t \t \t \t url: "https://grandeurflooring.ca/grand_dev/",
\t \t \t \t \t minify: true,
\t \t \t \t \t width: 1500,
\t \t \t \t \t height: 900,
\t \t \t \t \t outputfile: "critical_css/critical-front.css",
\t \t \t \t \t filename: "style.css",
\t \t \t \t \t buffer: 800*1024,
\t \t \t \t \t ignoreConsole: true
\t \t \t \t }
\t \t \t },
\t \t \t page : {
\t \t \t \t options: {
\t \t \t \t \t url: "https://grandeurflooring.ca/grand_dev/sample-page/",
\t \t \t \t \t minify: true,
\t \t \t \t \t width: 1500,
\t \t \t \t \t height: 900,
\t \t \t \t \t outputfile: "critical_css/critical-page.css",
\t \t \t \t \t filename: "style.css",
\t \t \t \t \t buffer: 800*1024,
\t \t \t \t \t ignoreConsole: true
\t \t \t \t }
\t \t \t }
\t \t },
\t \t
\t \t cssmin: {
\t \t \t target: {
\t \t \t \t files: [{
\t \t \t \t expand: true,
\t \t \t \t cwd: 'critical_css',
\t \t \t \t src: ['*.css', '!*.min.css'],
\t \t \t \t dest: 'critical_css',
\t \t \t \t ext: '.min.css'
\t \t \t \t }]
\t \t \t }
\t \t }
\t });
\t // Load the plugin that provides the "critical" task.
\t grunt.loadNpmTasks('grunt-criticalcss');
\t // Load the plugin that provides the "cssmin" task.
\t grunt.loadNpmTasks('grunt-contrib-cssmin');
\t // Load the plugin that provides the "watch" task.
\t grunt.loadNpmTasks('grunt-contrib-watch');
\t // Load the plugin that provides the "PostCSS" task.
\t grunt.loadNpmTasks('grunt-postcss');
\t // Critical task.
\t grunt.registerTask('critical', ['criticalcss:front']);
};
En footer.php, avant wp_footer(), je mets le script:
<script src="http://localhost:35729/livereload.js"></script>
Si vous souhaitez envoyer un message au navigateur et le recharger, vous devez utiliser un événement websocket ou envoyé par le serveur. Ou vous pouvez interroger avec AJAX. Mais je recommande de ne pas ajouter de code qui force un rechargement de page. Lorsque votre site Web est en ligne, vous devez supprimer le code de toute façon. –
Je suis en train de développer sur le serveur, donc je voudrais que ça fonctionne, même si ça veut dire enlever le code plus tard. Si vous connaissez une implémentation sur comment faire cela et cela fonctionne, cela vous dérangerait-il de poster une réponse? –