Подтвердить что ты не робот

Twitter Bootstrap LESS с Node.js & Express

Поскольку Twitter Bootstrap 2 вышел, я хотел интегрировать его в проект Node.js. К сожалению, что-то не так с меньшим компилятором, и я не могу заставить его работать. Я поместил все файлы в общую папку и настроил новый проект с помощью express -c less newproj. и добавил строки для менее

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

Все Node говорят мне:

Express server listening on port 3000 in development mode
undefined

На стороне клиента я получаю 500 (Внутренняя ошибка сервера) для файла bootstrap.css, который должен быть скомпилирован lessc.

lessc bootstrap.less

Прекрасно работает.

Кто-нибудь знает, как решить проблему?

4b9b3361

Ответ 1

Для потомков это сильно изменилось в недавнем Экспрессе:

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

// This is just boilerplate you should already have
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);

Ответ 2

Хорошо, вот что я нашел для вас. Сначала вам нужны как компилятор, так и статическое промежуточное ПО. Компилятор компилирует ваше меньше и перекомпилирует изменения, статическое промежуточное программное обеспечение выполняет фактическую доставку css

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

Во-вторых, по какой-то причине, когда компилятор работает, он теряет информацию о текущем пути, поэтому он не может найти входящие. Поэтому мне пришлось пройти через bootstrap.css и добавить путь к каждому импорту.

@import "/public/stylesheets/reset.less";

Это явно странно, я буду вдаваться в него дальше.

Изменить: хотя странно, глубокий взгляд на код показывает мне простой способ. Немного больше поисков нашел этот запрос на перенос на репо https://github.com/senchalabs/connect/pull/174, который предлагает исправление для этого, но разработчики, похоже, не хотят он.

В этом потоке также есть некоторые обходные пути, но, по-видимому, лучшая идея - это абсолютный путь, который вы включили.