Allow packages to specify that files are assets, overriding any handler defined
for them. (May be useful for web workers!)
Let Assets.getBinary work before global-imports.js is executed.
We were partway here already: the client served assets from the manifest instead
of from a static directory (since 5b8e1c1), and we already generated the list of
assets in the slice JSON file. But on the server, we ignored that list and
re-walked the asset directory at bundle time.
Now, the idea of asset directory is solely a part of initFromAppDir.
This also fixes a bug where assets that weren't associated with on-disk files
wouldn't work properly if Asset.get* is called in a package loaded with
unipackage.load. Not really sure how dev-bundle-fetcher even worked...
Also fixes a bug in builder where generated filenames didn't actually avoid
duplicate files.
This does not bump BUILT_BY because the previous commit did, and this commit
will not be pushed without the previous commit.
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.
Set $NODE_ENV appropriately (to 'development' in 'meteor run' and 'production'
otherwise) so that connect doesn't send stack traces over the network in
production.
Set $NODE_ENV appropriately (to 'development' in 'meteor run' and 'production'
otherwise) so that connect doesn't send stack traces over the network in
production.
dev-bundle exposes the shell script that downloads the dev bundle. We need this
in a package because both star-translate and tools/bundler.js need access to it.
Replace type: "bare" with type: "server" in attributes.json. This now just
means "only make one server process" rather than controlling the boot script.
Programs that are type: "traditional" that want to be a webapp now need to
explicitly depend on the webapp package.
scripts receive their load lists via a command
line argument (as had been originally intended
but not implemented) rather than by a hardcoded
reference to 'package.json'.
is temporary and subject to change!) which can be
used to mark them as "regular old programs" (no
http server or mongo setup) and/or to mark them
as a star's control program
Ha. Turns out that `.call(this)` is needed after all when a
CoffeeScript file is using "use strict".
(http://es5.github.io/#x15.3.4.4)
Thanks to pipedreambomb on stackoverflow for the bug report and to
user1737909 for the documentation reference.
New node (0.8.21+) throws an error when path.join is passed null. Connect 1.9.2's static.send (used by gzippo) does this if you don't pass a 'root' option. Passing root: '/' works around this, but we should consider fixing the underlying issue, possibly by upgrading connect.