【问题标题】:Exposing Sass file from Meteor package for Meteor App importing从 Meteor 包中暴露 Sass 文件以导入 Meteor App
【发布时间】:2014-09-10 10:08:52
【问题描述】:

我正在为流星 0.9+ 构建一个包,它公开了一个名为“Bourbon”的 sass mixins 库,并试图找出最好的方法来提供从包中访问“@import”样式表到流星项目。

https://github.com/wolvesio/meteor-bourbon/

Pre Meteor 0.9 这曾经通过以下方式完成: @import "packages/wolves:bourbon/bourbon";

由于软件包系统发生了变化,但这不再有效。非常感谢任何有关如何以最佳方式向前推进的帮助。

【问题讨论】:

  • 我正在尝试使用您的包,但我收到错误消息:找不到要导入的文件或无法读取:“/.meteor/local/build/programs/server/assets/packages/wolves:波旁威士忌/波旁威士忌”。我相信您在 GitHub 上的文档中的导入声明可能不正确。我必须为我的 IDE 修改它才能找到该文件(我使用 WebStorm)。我在开头添加了“/”并将“wolves_bourbon”更改为“wolves:bourbon”。不确定是否需要在您的文档中更新。如果您需要更多信息来诊断错误,请告诉我。感谢您的帮助和您在将软件包放在一起方面所做的工作。
  • 我假设您是在 PC 上使用它吗?如果是这样,我认为这可能只是文件系统路径的不同,我必须在文档中注明。你能帮我一个忙,用这些细节在 github 项目上打开一个问题,以便我可以在那里解决它吗?

标签: meteor sass


【解决方案1】:

我已经成功地完成了你想要的,这有点hacky,但它终于可以工作了。

首先,您需要将.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/wolves:bourbon/bourbon/*" 中。

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

packages/wolves: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";

然后在包 README 中,邀请您的用户简单地将 bourbon.import.less 复制到他们的客户端目录中并从那里引用它。

client/lib/config/style.less

@import "bourbon.import.less";

这种方法有一个缺点,我目前无法解决:在构建应用程序时,.less 文件被复制到.meteor 目录中(触发meteor run 时发生的过程)。

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

所以当你第一次将包添加到应用程序时,它会抱怨它无法找到包.less 文件,从而触发重建(通过杀死并重新启动 meteortouching 你的应用程序.less 文件)将解决此问题。

【讨论】:

    猜你喜欢
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    相关资源
    最近更新 更多