node.js
  • less
  • express
  • 2011-12-14 13 views 5 likes 
    5

    app.js:express.js mniej kompilator: nie można dostać pracom

    app.use(express.compiler({ src: __dirname + '/public', enable: ['less']})); 
    app.use(express.static(__dirname + '/public')); 
    

    Moim zdaniem jade:

    link(rel="stylesheet", type="text/css", href='/app/stylesheets/app.less) 
    

    mam mniejszy plik: publicznych/app/stylów /app.less

    Kiedy zwrócić się do strony ja mam w głowie hTML:

    <link href="/app/stylesheets/app.less" type="text/css" rel="stylesheet"> 
    

    I zauważając w konsoli serwera.

    1) Dlaczego ekspres nie próbuje nawet kompilować aplikacji? Czy to powinno być?

    2) Jeśli wszystko w porządku: Należy połączyć w htm być

    <link href="/app/stylesheets/**app.less**" ... > 
    

    lub wyrażenia należy zmienić jego rozszerzenie podczas renderowania?

    <link href="/app/stylesheets/**app.css**" ... > 
    

    ?

    Odpowiedz

    12

    Wydaje się, że kompilator() został usunięty z connect i nie będą już obsługiwane, zgodnie z TJ Holowaychuck (twórca Połącz & Express):

    https://github.com/visionmedia/express/issues/877


    Aktualizacja 2013 -01-16

    Począwszy od Express 3.0.0, framework zawiera teraz less-middleware zamiast oprogramowania pośredniego Tha compiler Kiedyś był w Connect. Działa tak samo, jak stare oprogramowanie pośrednie.

    Aby dodać go do istniejącego projektu, dodać less-middleware do package.json i uruchomić npm install następnie dodać następujące config:

    app.use(require('less-middleware')({ src: __dirname + '/public' })); 
    app.use(express.static(path.join(__dirname, 'public'))); 
    

    W szablonie Jade odwołać go jako zwykłego pliku CSS:

    link(rel='stylesheet', type='text/css', href='css/styles.css') 
    

    Twoja struktura katalogów będzie wyglądać mniej więcej tak:

    myapp 
    +-public 
        +-css 
        +-styles.less 
    

    less-middleware będzie szukać plików .less, które mają taką samą nazwę jak żądany plik .css. Jeśli znajdzie, skompiluje go i wyświetli wynikowy CSS.

    Prawdopodobnie będziesz chciał wykluczyć skompilowane pliki CSS ze swojej kontroli źródła. Jeśli używasz Git, możesz dodać .css do swojego pliku .gitignore.

    +0

    Tak, to ma sens Nie mogę znaleźć kompilatora w źródle ... Dzięki za wskazanie. – WHITECOLOR

    5

    Możesz uzyskać kompilację LESS do pracy przy użyciu oprogramowania pośredniego, tak jak obecnie działa Stylus.

    Edit: Zamiast próbować dostać [żądania ściągania] [0] do głównego repozytorium LESS zdecydowano się po prostu zrobić to jako osobny pakiet.

    Oto jak można użyć LESS.js middleware:

    var lessMiddleware = require('less-middleware'); 
    
    var app = express.createServer(); 
    
    app.configure(function() { 
        // Other configuration here... 
    
        app.use(lessMiddleware({ 
         src: __dirname + '/public', 
         compress: true 
        })); 
    
        app.use(express.static(__dirname + '/public')); 
    }); 
    

    W pliku jade należy następnie móc użyć odwołania do pliku css:

    link(rel="stylesheet", type='text/css', href='/app/stylesheets/app.css') 
    
    +0

    express.staticProvider nie działa już w Express 3.x –

    +0

    Dzięki, zaktualizowany do używania składni statycznej Express 3.x. – Randy

    Powiązane problemy