Commit Graph

22033 Commits

Author SHA1 Message Date
Ben Newman
830c13b287 Bump package versions for 1.8.2-beta.5 release. release/METEOR@1.8.2-beta.5 2019-06-19 13:20:02 -04:00
Ben Newman
bd89ac8d1b Merge branch 'devel' into release-1.8.2 2019-06-19 13:19:11 -04:00
Ben Newman
bf24ef3cb6 Bump patch version of accounts-google package to 1.3.3. 2019-06-19 13:14:01 -04:00
Filipe Névola
ce14282304 Enable running multiple Cordova apps from same application source (#10577)
Fixes #10576.
2019-06-19 13:07:25 -04:00
zodern
d0de6e1176 Add assets to watchSet, again (#10565)
Follow-up to #10452.
2019-06-17 12:51:33 -04:00
Timo Schneider
ee09e22bde Add missing dot in query parameter (#10581)
So that emails from other users are not exposed.
2019-06-17 12:38:05 -04:00
Ben Newman
f0d39b86e6 Avoid module.useNode() for packages with "module" entry points. 2019-05-17 11:22:23 -04:00
Ben Newman
9fc6642f5a Compile unhandled JS imports for server bundles, too. 2019-05-17 10:59:17 -04:00
Ben Newman
6d3386d77d Bump package versions for 1.8.2-beta.4 release. release/METEOR@1.8.2-beta.4 2019-05-16 13:27:56 -04:00
Ben Newman
4b518d56e2 Bump $BUNDLE_VERSION to 8.16.0.4 before rebuilding dev bundle. 2019-05-16 13:11:18 -04:00
Ben Newman
c73ac1c844 Update reify and @babel/runtime to latest versions in dev bundle.
We ended up with two different versions of the reify package (0.19.0 and
0.19.1) in the last build of the dev bundle, which seems to have caused
the test failures.
2019-05-16 13:10:28 -04:00
Ben Newman
28d74dcc9f Use Reify to compile dynamic import(...). 2019-05-15 19:12:09 -04:00
Ben Newman
7185137ce7 Bump $BUNDLE_VERSION to 8.16.0.3 before rebuilding dev bundle. 2019-05-15 19:07:56 -04:00
Ben Newman
4155a01e57 Update meteor-babel and reify versions in dev bundle. 2019-05-15 19:06:23 -04:00
Ben Newman
d5d7413a38 Compile all unhandled node_modules client JS with Reify.
Although I hoped we could be clever about which npm packages we compiled,
there are already too many exceptions to the rules (for example, not all
npm packages that contain ESM code have a "module" entry point in
package.json).

It seems safer simply to compile all modules imported from node_modules
that have not already been handled by compiler plugins, and trust that our
disk+memory caching system will provide acceptable build performance.

Should help with #10547, #10544, and #10546.
2019-05-10 15:43:48 -04:00
Ben Newman
646fa4e3ee Consider only named packages in optimisticLookupPackageJson.
Sometimes (very rarely) an npm package may contain package.json files
other than the one found in the root package directory. For example, the
date-fns@2.0.0-alpha.27 package includes a small package.json file for
each of its functions (date-fns/someDateFn/package.json) that contains
only { sideEffects, typings }, for whatever reason. These package.json
files clearly do not serve the same purpose as date-fns/package.json, and
it would be convenient to ignore them in optimisticLookupPackageJson. The
easiest way I can see to accomplish that is to ignore package.json files
that do not have a "name" property, since any package.json file that
governs an actual package must have a name.

Should fix #10547.
2019-05-06 17:23:06 -04:00
Ben Newman
e94d5d3237 Bump package versions for 1.8.2-beta.3 release. release/METEOR@1.8.2-beta.3 2019-05-05 19:39:22 -04:00
Ben Newman
d9fd447e6f Avoid using fs.unlinkSync on directories.
Should help with #10549.
2019-05-05 19:37:45 -04:00
Ben Newman
fd68d4aa8c Merge pull request #10550 from meteor/support-module-syntax-in-ImportScanner
Support module syntax in ImportScanner, rather than using PackageSource#_findSources.
2019-05-05 19:36:31 -04:00
Ben Newman
f4af3ab2fa Backstop ESM module compilation with Reify in the ImportScanner.
Instead of compiling ESM syntax in node_modules using compiler plugins,
the ImportScanner can provide "native" support for ESM syntax by using
Reify to quickly compile just the import/export syntax in any imported
modules that were not already handled by compiler plugins.

Since this code runs every time the app is built, it should not matter
which version of Meteor was used to publish a package. Compared to the
previous implementation based on PackageSource#_findSources and unibuild
JSON files (#10545), this implementation should have far fewer
compatibility concerns, as well as being faster thanks to not processing
or compiling modules until the ImportScanner determines that they are
actually imported.

Though the number of files that get compiled by this system should be
relatively small for now, to maintain good performance, the results of the
compilation are cached on disk and in memory.
2019-05-05 19:10:13 -04:00
Ben Newman
72c704bcae Revert using _findSources to scan .npm/package/node_modules.
After much thought, I believe this implementation (#10545) would have
caused severe compatibility problems when using packages published with
earlier versions of Meteor in a Meteor 1.8.2 app, or when publishing
packages with Meteor 1.8.2 for use with earlier Meteor versions.

Specifically, this implementation relied on writing the additional
.npm/package/node_modules resources found by _findSources into the
unibuild JSON file(s), and there just wasn't any good way to make sure the
new JSON format could be safely consumed by previous Meteor versions.

Even if we found a way to hide the new resources from older versions of
Meteor, perhaps by putting them in a new/different property of the
unibuild JSON file, packages published with older Meteor versions might
try to load an npm package with a "module" field without realizing the
code must be compiled, which would likely cause a syntax error in Meteor
1.8.2, since the "module" field always gets preference over the "main"
field of package.json (in Meteor 1.8.2).
2019-05-05 19:03:30 -04:00
zodern
da323022b1 Do not remove source map url comments in public files (#10525) 2019-05-05 15:23:13 -05:00
Ben Newman
43d72af0f0 Bump package versions for 1.8.2-beta.2 release. release/METEOR@1.8.2-beta.2 2019-05-04 18:57:36 -04:00
Ben Newman
a69e6ffd21 Merge pull request #10545 from meteor/compile-Npm.depends-packages-with-ESM-entry-points
Allow .npm/package/node_modules to be compiled in Meteor packages.
2019-05-04 18:48:36 -04:00
Ben Newman
683d23cdee Bump compiler.BUILT_BY and LINKER_CACHE_SALT to force rebuild. 2019-05-04 18:08:49 -04:00
Ben Newman
5d0a1200c7 Allow .npm/package/node_modules to be compiled in Meteor packages.
When I implemented support for the "module" entry point in package.json
files for client code in #10541, I modified PackageSource#_findSources to
include files found in node_modules that need to be compiled, but my
implementation considered only "local" node_modules directories, like the
one in the application root directory, while neglecting the private
.npm/package/node_modules directories that many Meteor packages have.

This commit includes .npm/**/node_modules when _findSources is scanning a
Meteor package, which should solve issues like #10544, where a Meteor
package imports an npm package that was installed with Npm.depends, and
that npm package has a "module" field in its package.json file, pointing
to an ESM entry point module, but the ESM syntax was not appropriately
compiled, leading to parse errors like "Unexpected token export".

Before lazy compilation was introduced in Meteor 1.7 (#9983), including
the node_modules directories of Meteor packages would likely have been a
big problem for build performance, since there would be that many more
modules to compile. It's still worth making sure this change doesn't
regress build performance for other reasons, but I'm reasonably confident
lazy compilation will save us here, unless there are just too many npm
packages installed via Npm.depends that export ESM modules.
2019-05-04 18:08:49 -04:00
Ben Newman
9a4fa16db9 Merge branch 'devel' into release-1.8.2 2019-05-03 14:29:48 -04:00
zodern
eb5c0b5eed Fix checking for a rerender timeout (#10523) 2019-05-02 19:35:44 -04:00
Ben Newman
3fbf0619d5 Bump package versions for 1.8.2-beta.1 release. 2019-05-02 19:23:29 -04:00
Ben Newman
f166f226d8 Support the "module" field of package.json for client code. (#10541)
Supporting "module" in package.json for server code is not advisable
because Node.js will be adopting the "type":"module" convention instead,
and in the meantime we need to maintain consistency with Node's module
resolution rules, which only currently pay attention to "main":
https://medium.com/@nodejs/announcing-a-new-experimental-modules-1be8d2d6c2ff
2019-05-02 18:30:13 -04:00
Ben Newman
c4382c7d59 Bump $BUNDLE_VERSION to 8.16.0.2 before rebuilding dev bundle. 2019-05-02 17:11:18 -04:00
Ben Newman
35ca6980dc Use is-reachable to detect child process health in self-test.
On Linux, child processes that have exited may remain as <defunct>
"zombie" processes, which prevents process.kill(childPid, 0) from
throwing, so we need a different trick for detecting whether the child
process is still alive.
2019-05-02 17:10:41 -04:00
Ben Newman
4b0e4f8b0d Add package.json to tools/tests/apps/app-prints-pid.
The SIGKILL self-test in tools/tests/run.js has been failing recently
because @babel/runtime can't be found when the app-prints-pid app starts
up, which prevents the app from polling the parent process correctly.
2019-05-02 15:24:57 -04:00
Ben Newman
e680804ffc Wrap fs.copyFile[Sync] rather than reimplementing it. (#10542)
Should help prevent noYieldsAllowed errors due to the Promise#await call
in the removed copyFileHelper function, which is what caused 1.8.2-beta.0
to fail to publish on Linux (reported in #10540).
2019-05-02 13:48:02 -04:00
Ben Newman
b0a8e1bfaf Increase arbitrary SIGKILL timeout to make self-test more robust. 2019-05-02 13:44:49 -04:00
Ben Newman
f4b92a004e Bump package versions for 1.8.2-beta.0 release. release/METEOR@1.8.2-beta.0 2019-04-26 19:49:03 -04:00
Ben Newman
0482e66117 Bump $BUNDLE_VERSION to 8.16.0.1 before rebuilding dev bundle. 2019-04-26 18:55:08 -04:00
Ben Newman
114a348bb3 Convert programs/server/debug.js to TypeScript.
Another tiny module (like tools/isobuild/css-modules.ts) that proves we
can use TypeScript in programs/server/* code.
2019-04-26 18:55:08 -04:00
Ben Newman
c9ba0f3a22 Install latest Reify runtime in programs/server/main.js.
Also updated meteor-babel in the dev bundle to depend on reify@0.18.1, to
be consistent with the version used by server code.
2019-04-26 18:55:08 -04:00
Ben Newman
4ff27f8a52 Use Builder#copyTranspiledModules to compile .js and .ts files with Babel. 2019-04-26 18:55:07 -04:00
Luigi Pinca
efc8a3525d Fix variable scope (#10526)
Currenlty the `v` variable is only visible in the `if` block but it is
also used in the outer scope. Move the declaration to the outer scope.
2019-04-26 17:40:53 -04:00
Ben Newman
e3aecf2bc1 Bump $BUNDLE_VERSION to 8.16.0.0 before rebuilding dev bundle. 2019-04-23 19:21:57 -04:00
Ben Newman
15ba990d72 Update Node.js to version 8.16.0.
https://nodejs.org/en/blog/release/v8.16.0/
https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V8.md#8.16.0
2019-04-23 19:21:57 -04:00
Ben Newman
59c66baa9b Convert tools/static-assets/server/mini-files.js to module. 2019-04-23 19:21:57 -04:00
Ben Newman
f0192a82d9 Stop using mini-files.js in non-Babel-compiled code. 2019-04-23 19:21:57 -04:00
Ben Newman
36c4ae0a73 Bump accounts-base package version to 1.4.4.
This should have been done when PR #10299 was first merged. Thankfully,
@macrozone discovered the problem while diagnosing issue #10530.

Should fix #10530.
2019-04-23 16:59:24 -04:00
Ben Newman
154ca31faa Enable compilation of tools/static-assets/server. 2019-04-22 13:50:07 -04:00
Ben Newman
20273d72e9 Bump package versions for 1.8.2-alpha.1 release. release/METEOR@1.8.2-alpha.1 2019-04-14 14:27:07 -04:00
Ben Newman
5d52ff2685 Merge pull request #10528 from meteor/enable-TypeScript-compilation-of-meteor/tools
Enable TypeScript compilation of .ts modules in meteor/tools.
2019-04-14 14:25:28 -04:00
Ben Newman
543bed4e0b Convert tools/isobuild/css-modules.js to TypeScript.
Choosing this module first because it's tiny and only imported twice.
2019-04-14 14:00:48 -04:00