Migrating to 1.3 and api.imply - What should I do?


#1

Hi everyone! :slight_smile:

I started my first meteor project a few month ago now, using Meteor 1.1, and I decided very early to adopt a packaged/modular strategy to keep things neat, clean, and sorted. I plan to upgrade to 1.3 (because the latest changes and improvements are awesome! :smiley:) and before I do, I would like to be sure of what I’ll be doing to be on the right rails.

First, a little explanation on my file architecture. Here what I have:

  • Applications
    – app1
    – app2
    – etc.
  • Packages
    – Package1
    – Package2
    – etc.

Applications (ie: app1) are just created the regular way with meteor create app1. Then, I just don’t do anything more than meteor add package1. Which means that app1 is actually… empty :laughing:, relying on my package “package1” to imply all what will be needed (both general, public packages AND my own specific packages in my ‘Packages’ folder too)

“Package1”, the first, “core”, package, looks like this:

Package.describe({
  name: 'package1',
  version: '1.0.0',
  summary: 'Core package - "api.implies" all that is needed',
  git: '...',
  documentation: 'README.md'
});

Package.onUse(function(api) {
  api.versionsFrom('1.1.0.3');

  api.imply([
    'kadira:flow-router@2.6.1',
    'useraccounts:core@1.12.3',
    'accounts-password',
    // and so on...
    // now, my own, local packages:
    'package2@1.0.0',
    'package3@1.0.0',
    'package4@1.0.0',
    // and so on...
  ]);
});`

This works perfectly, and allows me to dedicate each package to a specific task/logic that I can reuse modularily in any app.

Now, as I want to upgrade to Meteor 1.3, I don’t really see how to reproduce this using the new (and awesome) module approach… What would this “api.imply” way of doing things become now?

Many thanks in advance for your help and advice!

Cheers,
Jimshell