Je crée une application node.js avec Express et socket.io. Je veux utiliser SASS et je vois qu'il y a un package npm pour cela, ce que je ne comprends pas, c'est comment faire le lien entre le nass SASS et l'application et le faire analyser le SASS?
MISE À JOUR: J'ai utilisé le middleware SASS https://github.com/andrew/node-sass l'a installé et l'a inclus de la manière suivante:
sass = require('node-sass');
app.configure(function(){
app.set('port', process.env.PORT || 3000);
/* other stuff */
sass.middleware({
src: __dirname + '/public/stylesheets/sass',
dest: __dirname + '/public/stylesheets',
debug: true
});
});
Mais ça ne marche toujours pas
Vous devez utiliser le middleware sass, par exemple celui-ci .
Citant des documents:
var server = connect.createServer(
sass.middleware({
src: __dirname
, dest: __dirname + '/public'
, debug: true
}),
connect.static(__dirname + '/public')
);
en cas d'utilisation express, ajoutez simplement:
app.use(
sass.middleware({
src: __dirname + '/sass', //where the sass files are
dest: __dirname + '/public', //where css should go
debug: true // obvious
})
);
à votre appel app.configure()
.
Bien sûr, sur les systèmes de production, il est préférable de précompiler sass en CSS.
mise à jour
Dans l'exemple ci-dessus, le middleware recherchera les fichiers sass
dans __dirname + '/sass/css'
. Par défaut, il recherche également les fichiers avec l'extension .scss
. Il ne semble pas y avoir d'option pour changer l'extension.
Si vous utilisez un générateur express, essayez
express --view=ejs --css=sass
Voici une solution basée sur diverses sources dont les fils/commentaires ci-dessus:
noeud:
var connect = require('connect');
var sass = require('node-sass');
var srcPath = __dirname + '/sass';
var destPath = __dirname + '/public/styles';
var server = connect.createServer(
sass.middleware({
src: srcPath,
dest: destPath,
debug: true,
outputStyle: 'expanded',
prefix: '/styles'
}),
connect.static(__dirname + '/public')
);
html:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="styles/main.css">
etc
système de fichiers:
rootDirectory/server.js (c'est l'application de noeud)
rootDirectory/public/styles/(c'est là que les fichiers scss compilés apparaîtront)
rootDirectory/sass/main.scss
Cela fonctionne pour moi et j'ai donné l'exemple à:
ici:
On dirait que l'implémentation a un peu changé pour Express. J'ai dû le faire à la place:
npm install node-sass-middleware --save
puis
var sass = require('node-sass-middleware');
app.use(
sass({
src: __dirname + '/sass', // Input SASS files
dest: __dirname + '/public', // Output CSS
debug: true
})
);