@ebohlman에게 감사드립니다. 그의 조언은 내가 궁극적으로 구현 한 것에 가깝습니다. app.configure을하고 난 정의가 컴파일 기능 (키 컴파일 사용하는 경우
'컴파일 : 기본적으로
내가 여기에 연결 미들웨어의 상단에이 작업을 수행하는 방법을 알아 내려고 노력하고 있었다 내가 생각 해낸 것입니다 ')과 같이 : 전 기능의 몇 만든 다음
app.use(require('stylus')
.middleware({
src: app.root + '/app/public',
compile: compile
})
);
: 다음
var stylus = require('stylus');
var mylib = function(style){
style.define('themeColor1', function(){
//call to the db that returns a color
color = 'blue';
color = color ? color : 'orange';
return new stylus.nodes.Literal(color);
});
};
var compile = function(str, path) {
return stylus(str)
.use(mylib);
};
을 .styl 파일의 내부에서 내가 수행
background-color themeColor1();
themeColor1 함수의 삼항 연산자는 간단한 기본값과 재정의를 허용합니다. 예를 기반으로 API를 이해하는 데 다소 시간이 걸렸지 만 다른 사람들이 수행 방법을 알고 싶어하는 해결책이 될 수 있습니다. 누구든지이 접근 방식의 단점이 있다면 알려주십시오.
문안이 가장 잘 작동하는 것 같습니다. –
함수를 만들지 않고 노드에서 스타일러스로 변수를 전달하는 방법을 알고 계십니까? 나는 .define()에 대한 대답을 보았지만, 그것은 나를 위해 작동하는 것 같다. – qodeninja
'Literal'이 예상대로 작동하지 않는다는 것을 발견했습니다.'Ident'를 사용해야했습니다. –