Commit Graph

423 Commits

Author SHA1 Message Date
Ben Newman
c5f6c270b7 Avoid modifying source files explicitly added by compiler plugins.
Should resolve #10233, reported by @klaussner.

Previously, if a compiler plugin called inputFile.addJavaScript multiple
times with different { path } strings, Meteor would allow importing all of
those modules at once by importing the original source module identifier,
by synthesizing a new source module containing a series of re-exports for
each of the generated modules.

Preserving this behavior is important for backwards compatibility, since
some compiler plugins still generate files like "module.ext.js" given an
input file named "module.ext", so Meteor tries to make those modules
interchangeable/synonymous.

However, if the compiler plugin explicitly calls inputFile.addJavaScript
with the original source path, then it would be a mistake to modify the
contents of that module, so Meteor will now leave the contents of that
explicit source module unmodified, rather than using it as a catch-all way
to import other generated modules.
2018-10-03 15:13:08 -04:00
Ben Newman
ac5410e75a Merge branch 'devel' into release-1.7.1 2018-09-12 12:38:37 -04:00
mrauhu
5574f22df5 Fix: file Meteor_:-@2x.png breaks development on Windows (#10110)
* Rename file that breaks development on Windows

* Fix: failing test bundle - verify sanitized asset names
2018-09-12 18:55:38 +03:00
Ben Newman
1a472a4161 Simplify external symlink handling in Builder#copyDirectory.
Follow-up to af51b816, which fixed #8005 by copying symlinks to external
directories as directories rather than trying to preserve the symlinks.

Issue #10177 revealed a flaw in this strategy: the filter function that we
use to strip development npm packages always rejects external paths, even
if the original symlink was found in a valid production npm package, and
thus its contents should be included in the production bundle.

In the process of fixing this problem, I realized that the only important
part of af51b816 was this code:

  // Update fileStatus to match the actual file rather than the
  // symbolic link, thus forcing the file to be copied below.
  fileStatus = optimisticLStatOrNull(externalPath);

and the code for manipulating thisAbsFrom and _currentRealRootDirectory
could be removed.
2018-09-05 21:30:27 -04:00
Ben Newman
9d75b0976e Merge branch 'master' into devel 2018-08-16 18:02:22 -04:00
Ben Newman
09194e86e8 Merge branch 'dynamic-import-0.4.2' into release-1.7.0.5 2018-08-16 13:20:05 -04:00
Ben Newman
8eb081336b Ignore bad POST requests in dynamic-import request handler.
Should help mitigate #10147.
2018-08-16 13:14:23 -04:00
Ben Newman
1cc5661f15 Ignore bad POST requests in dynamic-import request handler.
Should help mitigate #10147.
2018-08-16 10:10:00 -04:00
Ben Newman
9872a3a71d Tests for @x.y.z! package version constraint override syntax.
Following up on this promise:
https://github.com/meteor/meteor/pull/9942#commitcomment-30080110
2018-08-15 14:05:12 -04:00
Ben Newman
29ce8f2142 Adjust @babel/runtime version constraints in test app package.json files.
According to the plan described in #10134, whereas we had to pin these
versions to exactly 7.0.0-beta.55 for Meteor 1.7.0.4, we must now require
at least 7.0.0-beta.56 for Meteor 1.7.1, since other @babel/... packages
used by babel-compiler and meteor-babel are currently at beta.56.
2018-08-07 13:49:32 -04:00
Ben Newman
defbf6d6eb Merge branch 'devel' into release-1.7.1 2018-08-07 13:30:16 -04:00
Ben Newman
aba03743ad Update dynamic-import test app to Meteor 1.7.0.4.
Unit tests will still run the app from a checkout of the devel branch, but
it's worth noting that Meteor 1.7.0.4 also works for this app.
2018-08-07 12:33:15 -04:00
Ben Newman
228688cb8c Update vulnerable moment dependency of modules test app. 2018-08-07 12:28:44 -04:00
Ben Newman
619a8b6924 Merge branch 'master' into devel 2018-08-07 11:49:34 -04:00
Ben Newman
7593c74a7b Pin test app @babel/... dependencies to version 7.0.0-beta.55.
Also updated the dynamic-import test app to Meteor 1.7.0.3.
2018-08-06 12:35:23 -04:00
Ben Newman
2603f7c06a Add akryum:vue-component to modules test app to verify #10129 fix. 2018-08-06 11:15:29 -04:00
Ben Newman
818022dd02 Update moment dependency of modules test app to appease npm audit. 2018-08-06 11:15:28 -04:00
Ben Newman
d2942614ae Update modules test app to Meteor 1.7.1-beta.28. 2018-08-06 11:10:34 -04:00
Ben Newman
bcaeed676e Move puppeteer back to dependencies for test applications.
This should fix test failures, because apparently it's important that
puppeteer not be installed in devDependencies.
2018-08-04 14:49:55 -04:00
Ben Newman
b23b1213f4 Update @babel/... dependencies of modules test app to 7.0.0-beta.56.
Also moving puppeteer to devDependencies.
2018-08-04 14:27:38 -04:00
Ben Newman
ce68c4b91c Update dynamic-import test app dependencies. 2018-08-04 14:12:23 -04:00
Ben Newman
7dc77cdaf1 Fix importing local .json modules within Meteor packages.
The ImportScanner was mistakenly generating module.useNode() stub modules
for local .json files within Meteor packages, just because their absolute
module identifiers include "node_modules", which happens because we put
package modules under the /node_modules/meteor/<package name/ namespace.

Fix: make logic for determining when to generate module.useNode() stubs
match Module.prototype.useNode logic in modules-runtime/server.js.

Closes #10122.
2018-08-03 11:07:51 -04:00
Ben Newman
a4657f34d5 Merge branch 'devel' into release-1.7.1 2018-07-19 17:53:10 -04:00
Ben Newman
35473f29e4 Move package.json private field stripping tests into modules test app.
Follow-up to #9903.
2018-07-19 15:31:17 -04:00
Ben Newman
2cc172bbed Fix meteor scripts in tools/tests/apps/modules/package.json. 2018-07-18 12:48:35 -04:00
Ben Newman
a756af487b Merge branch 'devel' into release-1.7.1 2018-07-18 12:42:01 -04:00
Toine van Kampen
92b72bc46b Fix Failing Tests
Ensure Hot Code Push and Package Tests account for possible multiple runs.
2018-07-15 10:17:01 +10:00
Ben Newman
8b04c25390 Emit multiple meteorInstall calls for distinct meteorInstallOptions.
I recently noticed a bug whereby modules transferred from the application
bundle to the modules bundle would lose their application-specific import
extensions, since all modules installed in the modules bundle have only
.js and .json as import extensions, matching default Node behavior.

This commit fixes that bug by emitting one meteorInstall call per distinct
meteorInstallOptions object. This logic would work if every module had a
different meteorInstallOptions object, but in practice the modules bundle
should end up with exactly two meteorInstall calls, because a single
options object is shared among all modules from the same source batch.
2018-06-28 18:07:34 -04:00
Jesse Rosenberger
07f3290da1 Merge branch 'devel' into devel 2018-06-14 14:40:20 +03:00
Ben Newman
f0e04facd2 Update dynamic-import test app to Meteor 1.7.0.1. 2018-06-07 11:36:34 -04:00
Toine van Kampen
499bb7ea25 Merge remote-tracking branch 'meteor/devel' into devel
Rebaseline
2018-06-06 20:28:03 +10:00
Ben Newman
0fcf29eaee Update modules test app to Meteor 1.7. 2018-05-27 20:38:01 -04:00
Ben Newman
dbdadc1b11 Avoid using "browser" field of package.json for inputFile.resolve.
Fixes #9870.
2018-05-12 12:43:54 -04:00
Ben Newman
b7579ad100 Update modules test app to Meteor 1.7-rc.5. 2018-05-09 19:12:13 -04:00
Ben Newman
81248867aa Update meteor-node-stubs to version 0.4.1.
This only affects newly created applications for now, but developers can
update to the latest meteor-node-stubs by running

  meteor npm install meteor-node-stubs@latest

https://github.com/meteor/node-stubs/issues/15
2018-05-08 12:56:03 -04:00
Toine van Kampen
f666568e40 Merge remote-tracking branch 'meteor/devel' into devel
Rebaseline
2018-05-01 06:31:00 +10:00
Ben Newman
dcd01aceba Merge branch 'devel' into release-1.7 2018-04-25 18:22:00 -04:00
Ben Newman
986b47d1c4 Update meteor-babel to version 7.0.0-beta.46. (#9840) 2018-04-25 18:15:29 -04:00
Ben Newman
c8fc62f37e Add a package.json file to tools/tests/apps/package-tests. 2018-04-18 18:36:42 -04:00
Toine van Kampen
4bbc204bb0 Remove PhantomJS from App-Config
Remove PhantomJS from App-Config, Dynamic Import and Modules.
Explicitly end page before browser to ensure both are null.
2018-04-16 06:40:31 +10:00
Ben Newman
52a2354955 Merge branch 'devel' into release-1.6.2 2018-04-02 14:02:07 -04:00
Ben Newman
e6a0e9089d Merge branch 'master' into devel 2018-04-02 13:08:43 -04:00
Ben Newman
4c0e583249 Update meteor-babel to version 7.0.0-beta.42.
https://github.com/babel/babel/releases/tag/v7.0.0-beta.41
https://github.com/babel/babel/releases/tag/v7.0.0-beta.42

Also updated various @babel/... plugin versions in package.json files.
2018-03-31 13:10:12 -04:00
Ben Newman
efdc66d614 Merge branch 'devel' into release-1.6.2 2018-03-27 12:15:11 -04:00
Ben Newman
9401f0d572 Add tests of selective node_modules compilation using symlinks. 2018-03-26 14:51:51 -04:00
Ben Newman
339f128bd4 Merge branch 'devel' into release-1.6.2 2018-03-21 15:23:01 -04:00
Ben Newman
41b0b309c6 Bump @babel/runtime to latest version in various package[-lock].json files. 2018-03-20 21:13:52 -04:00
Ben Newman
cc77e963c5 Merge branch 'devel' into release-1.6.2 2018-03-07 12:31:43 -05:00
James Burgess
4ebf089d88 Remove underscore from meteor-base (#9596)
This should shave down bundle sizes by 14.4 kb for many non-blaze projects.

The other core meteor packages have not depended on `underscore` since #9362. However, we are only able to remove this last dependency now due to the previous commit, which eliminated usages of `underscore` from apps that did not have the package listed in their `packages` files. This was causing CI test failures that now should be corrected.

Any meteor apps currently using `_` without `underscore` listed in their `packages` file will need to add the package explicitly.

Version number of `meteor-base` bumped from 1.3.0 to 1.4.0.

There are only a few uses of `underscore` in these apps, and two of them actually used `underscore` without having it explicitly listed in their `packages` file.

This is a problem, because the apps were relying on the dependency from `meteor-base`, which we want to remove to cut down bundle sizes.

For the `modules` test app, I've added `underscore` to the `packages` file, because it is using `_` in an assertion about the module system. For the other app and all other uses of `_`, rather than add `underscore` to the `packages` files, I took the modernization route and replaced the functions with their ES6 equivalents, and then removed `underscore` from all `packages` files.
2018-03-07 11:23:52 -05:00
Ben Newman
f14d50538e Merge branch 'devel' into release-1.6.2 2018-03-01 18:02:08 -05:00