mz2
mz2

Reputation: 4702

Ignoring files in a Meteor JS project directory

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

Answers (5)

Lucbug
Lucbug

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

Michiel Dral
Michiel Dral

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

Andrew Mao
Andrew Mao

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

apb
apb

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

jonathanKingston
jonathanKingston

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

Related Questions