我有一个基于JavaScript的库,我想在Meteor JS应用程序中包含它。库源代码托管在Git存储库中,我想将repo作为子模块包含在我自己的Meteor应用程序的源代码库中。但是,我不需要Meteor处理的大部分文件,只需要几个选择的文件。事实上Meteor barfs的“错误:无法解析..嗯..某些HTML文件,在某些行上。抱歉”当它看到子模块中的许多文件时。
有没有办法选择将文件列入白名单或黑名单,以便包含在项目目录中的Meteor应用程序中?除了创建智能包之外,我可以在Meteor应用程序项目目录中包含外部资源(如Git子模块)。
更新:正如"How to create a package"的相关问题中所解释的,如果您在Meteor本地的Git签出中创建智能包,则会获得包中代码的热重载行为。
答案 0 :(得分:34)
除了jonathan提到的/public
目录之外,Meteor还会忽略任何以“。”开头的目录。 - 所以你可以创建一个.submodules
目录并将文件放在那里,Meteor不会加载它们。
这可能比/public
更好,因为它们不公开。
答案 1 :(得分:19)
更新:在即将发布的Meteor版本(0.6.5)中,有一个private
目录,您可以在其中放置客户端无法访问的文件,而不会自动加载到服务器上。 Assets
全局对象和API允许您读取这些文件。
答案 2 :(得分:2)
现在还支持.meteorignore
文件(Meteor v1.5.2.1)。它与.gitignore
完全相同。
您可以在项目的任何目录中使用它们,并与文件监视系统完全集成。
答案 3 :(得分:0)
不,唯一的方法是编写导入脚本。
如果您不知道,可以使用/ public目录将所有文件都包含在内。
我个人不会认为这是一个问题,因为你肯定不想根据某个路径导入文件,如果他们改变了他们的代码来添加一个新的必需文件,你的文件也会破坏。这不是我想要在部署时找到的东西,而是计划每次更改依赖项的版本。
答案 4 :(得分:0)
这听起来有点奇怪,但在流星1.3 中有...
/imports
..目录,不是meteor自动包含的。
名称的“意思是”/建议用于您从其他代码“导入”的模块。但你也可以将它用于你自己的应用程序代码,我认为这是一个比/private
更好的应用程序代码名称,但这是我个人的意见:-)