Now that we include it in published packages (as
node_modules/.package.json) we don't want it to change on every npm
update, or else we'll have to spuriously update package versions.
(The next release with this fix will spuriously update package versions,
though!)
If $METEOR_BINARY_DEP_WORKAROUND is set, then when bundling for a
non-host platform (build/bundle/deploy commands only), if a package has
no server unibuild for the target architecture, use the host
architecture and replace the npm modules with a package.json and
npm-shrinkwrap.json. Also write out a top-level setup.sh script (inside
programs/server) which runs npm install in all such directories.
To support this, we make sure to save the package.json and
npm-shrinkwrap.json files in various intermediate directories in case we
need them later. (We put them inside node_modules because that is what
gets copied from source tree to isopack.)
One big reason we need this is that the text format doesn't work on Windows
because of line endings. We could just replace the line endings based on
platform, but this seemed better overall.
Also, make sure to escape entities in HTML error page
We attempted to set default values for cordova-plugin-statusbar at
runtime. Because the plugin may not have been loaded at that point,
this gave inconsistent results. Instead, we now set the default options
while building, so they will get added to config.xml.
Fixes#5098
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.
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.
When Cordova plugins with old (pre-npm) IDs are installed, which
happens with older versions even when we have specified the new ID on
install, we need to convert these before checking whether to reinstall
all plugins.
When establishing the installed versions of Cordova platforms to check
whether we should remove the whole cordova-build directory to upgrade,
we make sure the platform has a version script and consider it outdated
if not.
This commit makes possible but but doesn't fully solve the problem of
using `meteor shell` within shell scripts. See #5055 for more
details.
Closes#5056
This commit makes possible but but doesn't fully solve the problem of
using `meteor shell` within shell scripts. See #5055 for more
details.
Closes#5056
Since 87b11bd we were treating client-only refreshes of the initial
server build as if they were initial builds, and not resetting the
project context. This meant among other things that local packages
weren't being rebuilt, which led to #5074 (but also would have led to a
whole bunch of other problems).
Fixes#5074.