【问题标题】:Stylus global variables手写笔全局变量
【发布时间】:2015-03-05 21:48:36
【问题描述】:

我有一个 core.styl,我在其中放置了我的网格样式、一些手写笔功能和一些变量。此文件应导入我的所有路线中。

除此之外,我还有一个 page.styl,它取决于我当前的路线(例如 contact.styl 用于 /contact)

注意:我的项目基于 angular.js,因此 html-head 不会重载。但是我可以在 html-head 中添加一些有角度的东西,比如

我试过了

//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中,我无法访问我的手写笔变量和函数(在core.styl中声明)

一种解决方案:@import '../core.styl' 在每个页面样式表中。但对于我来说,这个问题。

我可以尝试其他解决方案吗?

可能是这样的(server.js)?

function compile(str, path) {
	return stylus(str)
		.import(config.path_client + "/css/core")
		.set('filename', path)
		.set('warn', true)
		.set('compress', true);
}
app.use(stylus.middleware({
	src: config.path_client + '/css/pages',
	compile: compile
}));
(尝试了很长时间,但仍然对我不起作用)

编辑:我的文件结构:

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

【问题讨论】:

    标签: angularjs global-variables middleware stylus file-structure


    【解决方案1】:

    您可以使用 JS API 并使用 define 方法定义这些变量。见http://learnboost.github.io/stylus/docs/js.html#definename-node

    【讨论】:

    • 这不是和我提到的第一个解决方案一样,我在哪里做了 '@'import 'core.styl' ?或者,也许我做的不对,所以请纠正我:我做 .set('filename', '/myvars.styl').define(myvars) 然后做 '@'import 'myvars.styl' 或者我做。 set('filename', path).define(myvars) 直接导入 myvars,例如联系人.css。因此,两者最终都与 myvars 位于例如顶部相同。 contact.styl 文件定义还是? --有没有办法完全独立于任何 .styl/.css 文件来定义这个变量?
    • 它们将是完全独立的(它们只是全局变量)。
    • 好的,谢谢它对我很有用:) 现在我必须找到一种方法来以可监督的方式定义我的所有 vars 和 fns ..也许是一个 .json 文件
    • 所以最后我拥有的不仅仅是几个变量和函数......而且我使用 jeet(函数集)有没有办法一次定义这些函数?类似的东西 .define(allmyfunction.styl) ?
    猜你喜欢
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多