Commit Graph

5557 Commits

Author SHA1 Message Date
Ben Newman
12d2d4229d When testing, load test files in imports directories eagerly.
Fixes #6831.
2016-04-18 10:34:10 -04:00
Ben Newman
6e792a7cf2 Normalize .sourcePath and .targetPath before comparing them.
Fixes https://github.com/meteor/meteor/issues/6806#issuecomment-210365603,
which was also affecting the todos example app.
2016-04-15 16:58:05 -04:00
Ben Newman
f616b6bc81 Let multiple files have the same .sourcePath in the ImportScanner.
Importantly, the files can now differ with respect to their .lazy
properties, which fixes #6806 and related issues. Note that the files must
have different .targetPath values if they have the same .sourcePath.

This is a minor breaking change for code that relied on module.id being
based on the .sourcePath instead of the .targetPath.
2016-04-13 19:49:29 -04:00
Ben Newman
3a5e8da935 Make sure JS resources have a .targetPath property.
This path can be specified by calling addJavaScript({ path: ... }), and
defaults to being identical to the .sourcePath if no options.path is
provided.  The .targetPath may be different from the .sourcePath when a
compiler plugin calls addJavaScript multiple times for the same file,
using a different options.path each time, e.g. when a JSON configuration
file turns into multiple JS resources.
2016-04-13 19:26:33 -04:00
Ben Newman
8e9d0ab7ba Let ImportScanner resolve input files not on disk.
If we pass a file to ImportScanner#addInputFiles, and a module identifier
resolves to that file, it shouldn't matter if the file actually exists on
disk. A common example is a new file generated by a compiler plugin.
2016-04-13 16:34:58 -04:00
Ben Newman
1d31896564 Normalize node_modules directory names when cross-building.
Really fixes #6765.
2016-04-12 12:19:06 -04:00
Ben Newman
984e27e372 Better error message for _combineFiles lazy/bare mismatch. 2016-04-11 18:26:37 -04:00
Ben Newman
d287681868 Don't interfere with explicit sourceReadOptions.names.
Fixes #6787.
2016-04-11 17:02:10 -04:00
Ben Newman
865735a436 Tolerate malformed .meteor-portable files. 2016-04-11 17:02:10 -04:00
Ben Newman
cf98e285ac Fix imports of tools/tool-env/isopackets.js.
Fixes #6778.
2016-04-11 12:33:16 -04:00
Ben Newman
5c7e6065ac Keep quiet about legacy registerBuildPlugin errors in lazy files.
Fixes #6767.

This is essentially the same treatment we give to compilation errors in
lazy files processed by Package.registerCompiler-style plugins, which
fixed a similar issue: #5998. Here are the relevant commits:

be986fd709
ce4fda3783
2016-04-10 12:02:10 -04:00
Ben Newman
c0b64865ab Don't try to use CSS source maps for CommonJS-ified CSS modules.
Part of #6037.
2016-04-08 19:37:47 -04:00
Ben Newman
911b4aa4cb Simplify CSS-to-CommonJS conversion by not handling @import rules.
We can revisit this conversion if it turns out anyone really wants to use
@import rules in CSS files instead of using something like LESS.

Part of #6037.
2016-04-08 19:02:33 -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
a073280e3f Ignore nested node_modules directories if parent contains no sources.
This in important optimization for #6037, and it also fixes #6627, since
we are now registering watchSet dependencies on the contents of
node_modules directories.
2016-04-08 11:11:01 -04:00
Ben Newman
43659ff561 Search local node_modules directories for non-.js(on) source files.
Part of #6037.
2016-04-08 11:11:01 -04:00
Ben Newman
eb18d59faa Make all files in imports and node_modules directories lazy.
The most notable change here is that we now treat files in app imports
directories as lazy even before we know whether the app is using modules.
This could be a breaking change for some 1.3 apps that do not use modules
but have imports directories containing eager .js files. That (very minor)
level of backwards incompatibility seems acceptable in the context of
upgrading to Meteor ~1.3, however.
2016-04-08 11:10:52 -04:00
Ben Newman
6849b93fd2 Add trailing newline to bundle/programs/server/package.json. 2016-04-07 14:13:33 -04:00
Ben Newman
5a78420b10 Upgrade meteor-babel versions to 0.9.2. 2016-04-07 13:51:24 -04:00
Ben Newman
7c3014302c Add install script to programs/server/package.json when bundling.
This package.json file is used at times when npm-rebuild.js is not
available, such as when we're building the dev bundle.
2016-04-07 13:05:53 -04:00
Ben Newman
a7c3aa6a50 Tolerate (and prevent) missing file.deps in the ImportScanner.
Fixes #6724.
2016-04-07 13:05:52 -04:00
Ben Newman
b3a83bd118 Install reliable stubs for all Package[name] objects.
If a Meteor package had a file called index.js, the runtime module system
would resolve "meteor/<name>" to "/node_modules/meteor/<name>/index.js",
instead of falling back to Package[<name>] as expected.

Installing a stub for Package[<name>] at /node_modules/meteor/<name>.js
means the runtime module system no longer needs the fallback, and will no
longer be confused by index.js files.

Fixes #6590.
2016-04-07 13:05:52 -04:00
Ben Newman
179225f7f8 Construct identity source maps for unmapped files.
This is a partial reversion of ad3f56a0bf,
but hopefully less time intensive than the original.

Fixes #6639.
2016-04-07 13:05:52 -04:00
Ben Newman
b1c3f22ff4 Make quiet symlink loop checking the default.
Fixes #6665.
2016-04-07 13:05:52 -04:00
Ben Newman
a36c204d7d Allow importing files with unknown extensions if they parse as JS.
Fixes #6699.
2016-04-07 13:05:51 -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
2dd511ff11 Remove logic for writing package.json files for binary npm packages.
We're going to be using programs/server/setup.sh to run `npm rebuild` in
these packages, which is a much cleaner solution for #6537.
2016-04-07 13:05:50 -04:00
Ben Newman
91244f36c3 Run npm rebuild in programs/server/setup.sh.
Part of #6537.
2016-04-07 13:05:49 -04:00
Ben Newman
b4fe0d5c85 Allow importing .css files from node_modules directories.
Fixes #6037.
2016-04-07 13:05:49 -04:00
Ben Newman
94d03ee6bb Update the modules test app to Meteor 1.3.1. 2016-04-07 13:05:49 -04:00
Ben Newman
d7f87b00bf Don't colonConverter.convert(name) again. 2016-04-03 13:26:45 -04:00
Ben Newman
aeb2b6b0ed Avoid unnecessarily long node_modules paths for plugin isopacks.
Long paths pose real problems on Windows, and may have exacerbatd the
consequences of #6609.
2016-04-02 20:25:21 -04:00
Ben Newman
5fc2e0c043 Use IsopackCache#uses to determine useMeteorInstall. 2016-04-01 21:39:31 -04:00
Ben Newman
6c1c12318c Refactor IsopackCache#{uses,implies} so modules use/imply themselves.
In particular, it is very important that the 'modules' package qualifies
as using itself, or else its require function will not be able to find
files unless they are mentioned in package.js.
2016-04-01 21:22:51 -04:00
Ben Newman
0e62234fe0 Bump compiler.BUILT_BY to 'meteor/20'. 2016-04-01 19:53:49 -04:00
Ben Newman
5bde892812 Tolerate \r\n line endings when splitting lines in linker.
Fixes #6660.
2016-04-01 14:16:40 -04:00
Ben Newman
8248d86fb2 Consolidate exit code logic for meteor npm and meteor node.
Follow-up to #6675.
2016-04-01 12:08:55 -04:00
Jesse Rosenberger
97cb2c14a8 "meteor npm/node" should return exit code from command
Fixes #6673

The Meteor "dev bundle bin commands" which proxy through to the
meteor version of npm/node was not returning the exit code from the
command which it executed.  This creates problems for things like
`meteor npm run script-name` when the exit code is important.  This
comes into play when you run npm scripts which run tests, lint code, etc.

This fix causes the meteor-tool to process.exit with the spawned process
exit code.

Windows Disclaimer: I used the same flush-buffers-on-exit-in-windows
that the tool/cli/main.js uses because I would assume the same problem
exists, however, I don't have the Windows environment to test or confirm
that this code works at all.

Also, couldn't find any tests that directly tested this dev bundle
bin-command passing scenario (though hard to search through them all),
so I created a barebones test app and tests.
2016-04-01 17:09:03 +03:00
Ben Newman
be986fd709 Report compilation errors for lazy files at import time. 2016-03-31 20:09:53 -04:00
Ben Newman
a847988be7 Omit lazy resources from unibuild JSON files when not using modules.
Fixes #6618.
Fixes #6484.
2016-03-31 20:09:53 -04:00
Ben Newman
e9d5ec34da Implement IsopackCache#{uses,implies}. 2016-03-31 19:17:02 -04:00
Ben Newman
e8f9972a5b Convert IsopackCache to an ES2015 class.
No behavioral changes.
2016-03-31 16:17:50 -04:00
Ben Newman
85047f9d3f Improve wording of missing modules warnings. 2016-03-31 16:17:50 -04:00
Ben Newman
77f2fdf426 Silence missing module warnings generated by Meteor packages.
A better way to verify package dependencies is coming: #6322.
2016-03-31 16:17:49 -04:00
Ben Newman
a86c61eb9b Don't warn about unresolved modules in Browserify/Webpack bundle files.
Fixes https://github.com/practicalmeteor/meteor-mocha/issues/19
Related: https://github.com/meteor/todos/issues/90
See also: 62c41b2ef5
2016-03-31 16:17:49 -04:00
Ben Newman
f6fb8b6114 Try harder to determine file.sourcePath in ImportScanner. 2016-03-31 16:17:49 -04:00
Martijn Walraven
88d43a0f16 Only prepare instead of build the Cordova project for iOS
Building the iOS app for release should be done from Xcode anyway, to
correctly code sign and submit to TestFlight or the App Store.

Because building would override `build-extras.xcconfig`, this would
remove a temporary workaround for #6492, which is now correctly applied
on both `meteor run` and `meteor build`.
2016-03-30 13:37:01 +02:00
Wexpo Lyu
d63daaa6a9 A space added. 2016-03-29 13:37:11 +08:00
Wexpo Lyu
8d99779f78 Update the info when on latest recommended. 2016-03-29 13:33:58 +08:00