Reputation: 4702
I have a JavaScript based library I'd like to include in a Meteor JS application. The library source code is hosted in a Git repository and I'd like to include the repo as a submodule in my own source code repo for my Meteor app. However, I don't need a majority of the files included processed by Meteor, only a few select ones. Indeed Meteor barfs with "Error: Couldn't parse .. um .. some HTML file, on some line. sorry" when it sees many of the files in the submodule.
Is there a way to selectively whitelist or blacklist files for inclusion into the Meteor app inside the project directory? Apart from creating a Smart Package, are there ways in which I could include external resources such as Git submodules inside my Meteor app project directory.
Update: as explained in the related question of "How to create a package", if you create a Smart Package into a local Git checkout of Meteor itself, you get the hot-reload behaviour for the code in the package.
Upvotes: 30
Views: 7405
Reputation: 516
There is also now support for a .meteorignore
file (Meteor v1.5.2.1). It works exactly the same as a .gitignore
.
You can use them in any directory of your project and are fully integrated with the file watching system.
Upvotes: 2
Reputation: 4068
It sounds a bit odd, but in Meteor 1.3 there is the..
/imports
..directory, that is not automatically included by meteor.
It is 'meant'/suggested by the name, to be for modules that you 'import' from your other code. But you can just as well use it for your own app code, and I think it is a better name for app code than /private
, but that is my personal opinion :-)
Upvotes: 0
Reputation: 36900
Update: in the upcoming release of Meteor (0.6.5) there is a private
directory in which you can put files that are inaccessible to the client and not automatically loaded on the server. The Assets
global object and API allows you to read these files.
Upvotes: 19
Reputation: 3370
In addition to the /public
directory that jonathan mentions, Meteor also ignores any directories that begin with a "." - so you could create a .submodules
directory and put the files in there and Meteor won't load them.
This is probably preferable to having them in /public
since, well, they're not public.
Upvotes: 34
Reputation: 1418
No, the only way to do this is write an import script.
There is a /public dir you can use to have all the files in if you didn't know of that.
Personally however I wouldn't consider this an issue as surely you don't just want to import files in based on a certain path, if they changed their code to add a new required file yours would break too. That is not something I would want to find out on deploy, rather plan for each change of version of the dependency.
Upvotes: 0