从Meteor软件包中公开Sass文件以导入Meteor应用程序

从Meteor软件包中公开Sass文件以导入Meteor应用程序,meteor,sass,Meteor,Sass,我正在为meteor 0.9+构建一个包,该包公开了一个名为“Bourbon”的sass混音库,并试图找出最好的方法,以提供对meteor项目中包中的“@import”样式表的访问 在Meteor 0.9之前,这通常是通过以下方式实现的: @import“包装/狼:波旁威士忌/波旁威士忌” 由于软件包系统发生了变化,尽管这不再有效。如果您能提供任何帮助,帮助我们朝着这个方向前进,我们将不胜感激。我已经成功地完成了您想要的任务,虽然有些困难,但最终还是成功了 首先,您需要在包中添加.less文件

我正在为meteor 0.9+构建一个包,该包公开了一个名为“Bourbon”的sass混音库,并试图找出最好的方法,以提供对meteor项目中包中的“@import”样式表的访问

在Meteor 0.9之前,这通常是通过以下方式实现的:
@import“包装/狼:波旁威士忌/波旁威士忌”


由于软件包系统发生了变化,尽管这不再有效。如果您能提供任何帮助,帮助我们朝着这个方向前进,我们将不胜感激。

我已经成功地完成了您想要的任务,虽然有些困难,但最终还是成功了

首先,您需要在包中添加
.less
文件作为服务器资产:

Package.onUse(function(api){
  api.addFiles([
    "bourbon/style1.less",
    ...
    "bourbon/styleN.less"
  ],"server",{
    isAsset:true
  });
});
然后运行
meteor
来触发应用程序的构建:这将通过服务器资产复制到应用程序的
.meteor
目录。更准确地说,您的
.less
文件现在将位于
”。meteor/local/build/programs/server/assets/packages/wolfs:bourbon/bourbon/*“

现在,您可以使用这个超级不友好的路径在应用程序中引用这些
.less
文件。 我建议通过在包中直接定义import.less来对包用户隐藏这些内容:

Package.onUse(function(api){
  api.addFiles([
    "bourbon/style1.less",
    ...
    "bourbon/styleN.less"
  ],"server",{
    isAsset:true
  });
});
packages/wolfs:bourbon/bourbon.import.less

@bourbon-root: ".meteor/local/build/programs/server/assets/packages/wolves:bourbon/bourbon/";

@import "@{bourbon-root}style1.less";
//
@import "@{bourbon-root}styleN.less";
@import "bourbon.import.less";
然后在程序包自述文件中,邀请您的用户只需将bourbon.import.less复制到他们的客户机目录中,然后从那里引用它

client/lib/config/style.less

@bourbon-root: ".meteor/local/build/programs/server/assets/packages/wolves:bourbon/bourbon/";

@import "@{bourbon-root}style1.less";
//
@import "@{bourbon-root}styleN.less";
@import "bourbon.import.less";
这种方法有一个我目前无法解决的缺点:构建应用程序时,
.less
文件被复制到
.meteor
目录中(触发
meteor运行时发生的过程)

但是,构建过程将首先尝试编译应用程序
.less
文件,然后再将服务器资产(在本例中是我们的包
.less
文件)复制到
.meteor
目录


因此,当你第一次将软件包添加到应用程序时,它会抱怨它找不到软件包
。更少的
文件,触发重建(通过杀死并重新启动
meteor
touch
启动你的应用程序
。更少的
文件)将解决这个问题。

我正在尝试使用你的软件包,但我得到一个错误:导入的文件找不到或不可读:“/.meteor/local/build/programs/server/assets/packages/wolfs:bourbon/bourbon”。我相信您在GitHub上的文档中的导入声明可能不正确。我不得不修改它以便我的IDE找到文件(我使用WebStorm)。我在开头加了“/”,并将“狼波旁威士忌”改为“狼波旁威士忌”。不确定是否需要在您的文档中更新。如果您需要其他信息来诊断错误,请告诉我。我很感谢你的帮助和你在组装软件包方面所做的工作。我想你是从个人电脑上使用的吗?如果是这样的话,我认为这可能只是文件系统路径的不同,我必须在文档中注意到这一点。你能帮我一个忙,用这些细节打开github项目的一个问题,让我在那里解决它吗?