在包之间共享手写笔表

时间:2015-07-31 16:34:18

标签: meteor

我有一个应用程序被分成几个包。这些包中的每一个都有自己的.styl表来设置特定包提供的组件的样式。目前,这些.styl表都依赖于variables.import.styl文件夹中./client/styles中声明的相同函数,mixins和变量。我这样做是因为如果我更改errorRed中的variables.import.styl颜色,它会更改所有包中的颜色。

要访问这些变量,在每个包的样式表的顶部,我有一个@import "./client/styles/variables.import"。或者,我可以为手写笔vars&创建一个单独的包。然后使该包成为所有其他包中的依赖项。我不喜欢这两种选择,但我认为这是我为保持样式表被包装分开而付出的代价。任何人都有更优雅的选择吗?

值得注意的是,在Meteor devel分支上,我以前的解决方案不再有效(手写笔无法看到包根目录上方的文件夹)。无论在下一版本发布之前这是否已修复,我都知道必须有一个更清洁的解决方案。

1 个答案:

答案 0 :(得分:0)

从Meteor 1.2开始,这是一个开箱即用的功能,适用于手写笔和较少的样式表。

https://github.com/meteor/meteor/tree/devel/packages/stylus#cross-packages-imports

package.js Package.onUse部分,使用api.addFiles声明此套餐提供的手写笔表:

api.addFiles('styles/package-sheet.styl', 'client', {isImport: true});

请注意isImport: true选项?

然后在主应用程序主样式样式表中,您可以使用以下语法导入特定包(假设它名为my-username:mypackage)表:

@import '{my-username:my-package}/styles/package-sheet.styl'

请注意,要在您的应用中导入工作表,您还需要使用此新语法,而不使用任何包名称:

@import '{}/client/styles/app-sheet.styl'

以前的语法不会有效!

// the Meteor build tool will complain about not finding the sheet
@import 'client/styles/app-sheet.styl'