You must declare your @exports using single-line ### comments:
### @export x ###
x = 5
This involves some ugly and not 100% correct low-level source hackery, making
some assumptions about the format that CoffeeScript generates.
Apply this to the current tree, which deletes the unused .npm directory from the
ctl package.
Specifically, this deletes the ".npm/package" or ".npm/plugin/foo" directory. We
don't attempt to also clean up the ".npm/plugin" or ".npm" directory, but a "git
clean -df" will do the trick if you really care.
We were looking at "argv._" to find package names, where that was the argv that
was parsed at the top level, where we had no idea that "--production" was a
boolean, so it was pased as "--production=onepackage" and "onepackage" was not
included in argv._.
This is to isolate the NPM dependencies of the package at runtime from the NPM
dependencies of any build-time plugins in the package, which live in
PACKAGE/.npm/plugin/foo.
Before, plugins could see the node modules at PACKAGE/.npm/node_modules, which
was not isolated enough.
(One issue would be that if you happened to switch a package from having runtime
dependencies to having buildtime dependencies, the buildtime dependencies would
not get installed. This is partially an issue because we don't know to uninstall
all dependencies if they are all removed, but even if that is fixed it would
enforce an unnecessary ordering semantics on NPM updates.)
Server assets can be included in a bundle by putting them in the private/
directory of an application, or by registering a build plugin that calls
compileStep.addAsset with a server file. The Assets API (Assets.getText and
Assets.getBinary) allows an application or package to retrieve the contents of
its own server assets.
With the precedence bug fixed, more directories are placed into
usedAsFile... enough to break nodeModulesMode=symlink. Fortunately bundler-test
did catch this.
The somewhat hacky fix is to look carefully for reserved empty directories and
replace them with symlinks. This may not be 100% correct; see the XXX comment.
(On Galaxy, start.sh deletes node_modules anyway.)
Normally you wouldn't use bundle to create things meant to be deployed (you'd
use deploy!) but Galaxy development itself consists of building things with
"bundle" to be assembled into a Galaxy.
They really only work well (ie, restart properly after reconnect) if they have
an increasing BSON Timestamp() field named ts. Sorry, that's just how Mongo
works.
Use them for "meteor logs" in Galaxy mode.