Commit Graph

34 Commits

Author SHA1 Message Date
Ben Newman
5aee7a9a09 Use an appropriate module object in meteor shell. 2016-05-19 17:04:08 -04:00
Ben Newman
2f0aaa947a Make meteor shell help text robust across Node versions. 2016-05-16 18:21:13 -04:00
Ben Newman
52e2c6a36c Use setImmediate instead of process.nextTick in shell-server.js.
Since process.nextTick fires before IO events, it doesn't give the server
much chance to make progress starting up.
2016-05-16 18:21:13 -04:00
Ben Newman
355e850829 Avoid more uses of fs.exists and fs.existsSync.
Part of #6921.
2016-05-16 18:21:13 -04:00
Ben Newman
d94e7d812d Upgrade dev bundle meteor-promise to 0.7.1. 2016-05-16 18:21:11 -04:00
Ben Newman
2b62539d9f Allow Galaxy users to disable npm rebuild if they really want to.
Part of #6537..
2016-04-08 15:20:09 -04:00
Ben Newman
65c8e65e77 Exit early from npm-rebuild.js when npm-rebuilds.json does not exist. 2016-04-07 13:05:50 -04:00
Ben Newman
c18c1f5278 Replace setup.sh with npm-rebuild.js, and run it on npm install.
Implements https://github.com/meteor/meteor/issues/6537#issuecomment-205954797

The setup.sh script was only sometimes written previously, so no existing
deployment logic should rely on it existing.

On the other hand, all apps built by `meteor build` require running
`npm install` in the programs/server/ directory, so the install hook I
added to programs/server/package.json will ensure npm-rebuild.js is
invoked reliably.

Using a pure Node script means this code will work just as well on Windows
as on Linux or Darwin, though Linux is by far the most common deployment
platform for Meteor apps.

TODO Remember to rebuild the dev bundle before the next release!
2016-04-07 13:05:50 -04:00
Ben Newman
d3e7aa9141 Revert enabling partial paths for files.pathRelative.
This reverts a change I made in 75f9214959.
I thought allowing partial paths would make files.pathRelative more
robust, but it had the unintended consequence of causing #6586.
2016-03-24 13:35:31 -04:00
Ben Newman
75f9214959 Use OS-specific absolute paths with require.resolve. 2016-03-24 00:48:40 -04:00
Ben Newman
420d001b75 Make sure findAppDir uses correct OS paths.
Fixes #6568.
2016-03-23 13:47:49 -04:00
Ben Newman
b8a0340dc9 Fix findAppDir when running from a temp test directory. 2016-03-22 18:13:25 -04:00
Ben Newman
67491a66dd Fix .npm/{package,plugin}/... parsing.
For package dependencies, the node_modules directory immediately follows
the /package/ part of the path, but for plugins the name of the plugin
comes before the node_modules directory.
2016-03-21 19:54:05 -04:00
Ben Newman
299db526f1 Revert "Bump $MIN_NODE_VERSION to v0.10.43."
This reverts commit 6985c47ea7.

Fixes #6533.
2016-03-19 13:13:22 -04:00
Ben Newman
ff023e9c37 Make npmRequire check node_modules paths from control files, too.
Because symlinking is impossible on Windows, and copying node_modules
files is too slow, we can't just symlink/copy all node_modules files into
.meteor/local/build/programs/server/npm like we do for other platforms, so
we have to search for them where they are.

Part of #6500.
2016-03-17 20:59:48 -04:00
Ben Newman
6985c47ea7 Bump $MIN_NODE_VERSION to v0.10.43. 2016-03-17 19:55:29 -04:00
Ben Newman
c79da1be8a Convert module identifiers to OS paths in Npm.require.
Part of #6500.
2016-03-17 02:22:53 -04:00
Ben Newman
f595034e1a Allow npmRequire to load dev bundle and built-in modules. 2016-03-13 23:39:38 -04:00
Eric Dobbertin
134707be68 Add Assets.absoluteFilePath 2016-03-11 15:09:55 +11:00
Ben Newman
40857bdaff Propagate meteorEnv subset of process.env from server to client.
Fixes #6399.
2016-03-08 19:37:57 -05:00
Ben Newman
f8084682f5 Commit some accidentally unstaged changes. 2016-03-07 20:21:57 -05:00
Ben Newman
c9660d9f83 Implement module.useNode() for importing node_modules on the server.
Upgrading the install package to 0.5.6 was vital to enable support for
Module.prototype.useNode: 9eb8351e11
2016-03-07 19:41:15 -05:00
Ben Newman
26e3cd7df2 Make sure <bundle>/npm/ contains all node_modules directories. 2016-03-07 19:41:15 -05:00
Ben Newman
cfdcc37e0d Make ImportScanner path manipulation more Windows-friendly. 2016-03-03 12:35:30 -05:00
Ben Newman
3c20ea603f Use meteorInstall's root require function in meteor shell.
Helps with #6271.
2016-02-26 12:36:58 -05:00
Martijn Walraven
711176a28f Merge branch 'release-1.3' into cordova-improvements 2016-02-09 12:43:39 +01:00
Ben Newman
4c890ac20d Use Babel 6 to implement ECMAScript 2015+ in tool code.
Note that `export default` no longer modifies `module.exports`, but simply
defines `exports.default`, so these two import styles will work:

  import DefaultExport from "./export-default-module.js"; // preferred
  var DefaultExport = require("./export-default-module.js").default;

but this style will no longer work:

  var DefaultExport = require("./export-default-module.js");
2016-02-04 21:37:34 -05:00
Martijn Walraven
fb7e33de2e Include appId in __meteor_runtime_config__ for deployed apps
This adds `appId` to the `config.json` generated by the bundler, and uses that
in `boot.js` to initialize `process.env.APP_ID`. This is used by `autoupdate_server.js`
to set `__meteor_runtime_config__`.
2016-01-25 15:02:43 -08:00
Ben Newman
76609a615c Upgrade to Node v0.10.41. 2015-12-08 18:43:15 -05:00
Ben Newman
7bd0382ad9 Allow piping commands to meteor shell via stdin. 2015-11-12 16:33:21 -05:00
Ben Newman
7eafc55eb2 Improve meteor shell command evaluation.
Specific improvements:

- Parentheses are now stripped from commands that look like named classes
  so that they will be treated as class declarations rather than as named
  class expressions.

- When the `ecmascript` package is installed, `compileForShell` errors are
  now exposed to the `evalCommand` callback.

- Instead of using `vm.runInThisContext` to parse and evaluate commands at
  the same time, `evalCommand` now parses commands by creating a new
  `vm.Script` and later evaluates them using `script.runInThisContext()`,
  so that `SyntaxError`s can be reported immediately. Fixes #5131.
2015-09-11 18:32:39 -04:00
Ben Newman
5a880a00bb If Package.ecmascript is installed, use it to compile shell commands. 2015-08-13 20:01:01 -04:00
Ben Newman
0cd38690e9 Use a Promise to run shell commands using recycled Fibers. 2015-08-13 20:01:01 -04:00
Slava Kim
35aef2b296 Create 'static-assets' folder in tools
To keep files that are not run by tool itself, but are used by generated code.
2015-07-31 17:12:38 -07:00