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
Прекрасно работает.
Кто-нибудь знает, как решить проблему?
Ответы
Ответ 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, который предлагает исправление для этого, но разработчики, похоже, не хотят он.
В этом потоке также есть некоторые обходные пути, но, по-видимому, лучшая идея - это абсолютный путь, который вы включили.