Узел js - меньше css не может найти файл для импорта - PullRequest
2 голосов
/ 17 января 2012

У меня есть два файла Less в public/stylesheets.Я использую Express.js, чтобы использовать их в качестве файлов CSS.

Первый файл one.less выглядит следующим образом:

@import "another.less";

h1 {
    color: red;
}

Второй файл another.less выглядит следующим образом:

p {
    color: red;
}

Когда я пытаюсь загрузить страницу, сервер завершает работу с ошибкой:

file 'another.less' wasn't found.

Я также пробовал абсолютный путь, но он не работал.

Это моя конфигурация Express.js:

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] }))
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

Ответы [ 2 ]

3 голосов
/ 19 марта 2012

Вы должны использовать без подключения для этого сейчас. Исходный компилятор less, который вы используете выше, на самом деле является частью connect, и если вы посмотрите текущий список проблем, вы увидите, что TJ решил больше не поддерживать меньше в connect из-за слишком разных компиляторов ( случай "не может сделать всех счастливыми"):

https://github.com/senchalabs/connect/pull/174

Вы можете посмотреть здесь без подключения: https://github.com/MartinodF/connect-less

Я опишу шаги для установки здесь, но понимаю, что они могут устареть (проверьте страницу github, если это не работает, и дайте мне знать, и я синхронизируюсь):

Используйте NPM для установки без подключения

npm установить без подключения

Затем загрузите его в свое приложение, указав исходный (и, возможно, целевой) каталог

app.use (require ('connect-less') ({src: __dirname + '/ public /'}));

Для меня это работало без проблем на Linux-боксе armv7 / Trimslice с expressjs 2.5.2 и узлом 6.6

2 голосов
/ 18 января 2012

Edit: '@import "/ public / stylesheets / two";'

Оригинальное предложение не сработало.

...