Grunt avec Compass et Watch compile lentement
Grunt prend un assez long à compiler le fichier css, je ne sais pas si c'est normal mais régulière montre-boussole prend environ 5 secondes.
Donc, la question est de savoir si il existe un moyen d'accélérer le temps de compilation avec Grunt ou est-il préférable de simplement coller avec compass watch?
Running "compass:dist" (compass) task
♀unchanged images/sprite-sf580a96666.png
overwrite stylesheets/app.css (3.263s)
unchanged images/sprite-sf580a96666.png
overwrite stylesheets/app_fr.css (3.289s)
Compilation took 11.116s
Running "watch" task
Completed in 13.974s at Wed Dec 18 2013 13:53:05 GMT-0500 (Eastern Standard Time- Waiting...
OK
>> File "scss\_core.scss" changed.
Gruntfile.js:
compass: {
dist: {
options: {
config: 'config.rb'
}
}
},
watch: {
sass: {
files: ['scss/*.scss'],
tasks: ['compass:dist'],
options: {
spawn: false,
}
},
scripts: {
files: ['js/*.js'],
tasks: ['concat', 'uglify'],
options: {
spawn: false,
}
}
}
});
source d'informationauteur xphong
Vous devez vous connecter pour publier un commentaire.
Avec ce que Simon a mentionné à propos de la
watch
option de grunt-contrib-compas, vous pouvez utiliser grunt-simultanées pour exécuter les deux processus, de manière efficacegrunt watch
etcompass watch
les uns à côté des autres:Si vous voulez exécuter la boussole à partir de Grunt lors de la construction, le déploiement, ou quoi que ce soit d'autre qui requiert
compile
au lieu dewatch
vous aurez besoin de faire une deuxième boussole de la tâche et de l'utiliser:Bien, vous pouvez regarder à l'aide de la Grunt-contrib-boussole
montre
. Que vais frayer boussole montre de sorte que vous aurez de meilleures performances. Bien que ce ne sera pas vous permettre de regarder plusieurs type de fichiers (par exemple, si vous aussi regarder pour .café fichier ou toujours reconstruire js, etc).Si vous avez absolument besoin de
grunt-contrib-watch
alors assurez-vous que sass la mise en cache est activé à l'aide de la tâche grunt. À partir de votre config collé ici, on dirait qu'il est. Mais problème de cache est généralement la raison de la boussole prend beaucoup de temps à compiler, donc j'aurais le double de vérifier dans mes Gruntfile.js si j'étais vous.Aussi, beaucoup de spriting et de manipulation de l'image méthode peut prendre un certain temps à traiter.
Peut-être un peu en retard à la fête, mais dans le cas où cette aide n'importe qui:
J'ai trouvé la même mauvaise performance avec grunt-contrib-regarder et sass. La meilleure façon de contourner ce problème semble être d'utiliser un regarder plugin. J'ai trouvé que grunt-montre-nospawn (par opposition à grunt-contrib-regarder plugin) est beaucoup plus rapide à compiler sass. De façon très significative, donc - je vais voir des améliorations de près de deux secondes.
Si vous souhaitez modifier la vitesse en outre, vous pouvez utiliser grunt-sass au lieu de grunt-contrib-sass qui utilise libsass de fournir une autre augmentation de la vitesse.
Ceci, combiné avec un autoprefixer, par exemple. nDmitry de l' (pas de lien, pas de rep) ce qui devrait combler les lacunes de fonctionnalités gauche de l'omission de la Boussole.
Espère que ça aide.
Je sais que cette question a déjà quelques années à ce point, mais je pensais que je voudrais ajouter une autre cause possible/solution.
D'abord, essayez de démarrer votre grunt serveur à l'aide de
--verbose
et de regarder pour voir où votre sass tâche est de prendre la plupart de son temps. Il y a des plugins qui signalent le temps de chaque partie de l'ivresse, mais pour moi il suffit de regarder les--verbose
de sortie, il est très clair où le retard était. Pour moi, ce n'est pas tant le sass tâche, il a été le chargement des dépendances inutiles.Comme il est indiqué dans cette question sur Grognement de dépôt GitHub, une des raisons pour lesquelles certaines tâches peuvent prendre du temps à compléter, c'est que Grunt charge toutes les tâches chaque fois qu'il s'exécute. Donc, même si grunt-contrib-montre est seulement en cours d'exécution de la boussole:dist tâche lorsque vous modifiez vos fichiers sass grunt est toujours en train de charger toutes les tâches et leurs dépendances.
Il y a maintenant un plugin appelé jit-grunt (ou sur npm), qui traite de cela et ne charge que ce qui est nécessaire à l'exécution de votre tâche. Cela a contribué à ma boussole tâche complète beaucoup plus rapide.