1

У меня есть core.styl, где я поместил свой стиль сетки, некоторые стилусы и некоторые переменные. Этот файл должен быть импортирован в всем моих маршрутов.Глобальные переменные Stylus

Помимо этого у меня есть page.styl, который dependes на моем текущем маршруте (например contact.styl для/контакта)

Примечания: Мой проект основан на angular.js поэтому HTML-головке не суммируются и не relode , Но я могу добавить некоторые вещи с угловыми в html-голове, например .

Я попытался следующие

//index.html 
 
<link rel="stylesheet" href="/css/core.css" /> <-- this is static, always there> 
 
           
 
<link rel="stylesheet" href="/css/pages/contact.css" /> <--- added by angular

Проблема: В contact.styl У меня нет доступа к моему стилуса varaiables и функции (объявленные в core.styl)

одно решение: @import '../core.styl' в каждой таблице стилей. Но из-за вопроса.

Есть ли другое решение, в котором я могу попробовать?

Возможно, что-то вроде этого (server.js)?

function compile(str, path) { 
 
\t return stylus(str) 
 
\t \t .import(config.path_client + "/css/core") 
 
\t \t .set('filename', path) 
 
\t \t .set('warn', true) 
 
\t \t .set('compress', true); 
 
} 
 
app.use(stylus.middleware({ 
 
\t src: config.path_client + '/css/pages', 
 
\t compile: compile 
 
}));
(пытался очень долго, но все еще не работает для меня)

Edit: Моя структура файла:

|client 
 
||css 
 
|||pages 
 
||||-contact.styl 
 
||||-contact.css 
 
|||base 
 
||||-core.styl 
 
||||-core.css 
 
|server 
 
||-server.js 
 
|

ответ

1

Вы можете использовать JS API и определите эти вары, используя метод define. См. http://learnboost.github.io/stylus/docs/js.html#definename-node

+0

Разве это не то же самое, что и первое решение, о котором я упоминал, где я «@» импортировал «core.styl»? Или, может быть, я не понимаю это правильно, поэтому, если вы меня правильно порекомендуете, я делаю .set ('filename', '/myvars.styl').define(myvars), а затем делаю' @ 'import' myvars.styl 'ИЛИ я это делаю. set ('filename', path) .define (myvars), что myvars напрямую импортируются, например contact.css. Таким образом, оба заканчиваются тем же самым, что и myvars на вершине, например. Определен ли файл contact.styl или? - Нет ли способа определить эти вары полностью независимо от любого .styl/.css-файла? – Mangocrack

+0

С вашего вопроса это похоже на то, что вам нужно (определенные глобальные вары и функции будут доступны внутри 'contact.styl', не импортируя их в' core.styl'. – Panya

+0

Они будут полностью независимыми (они просто глобальны) – Panya