Commit Graph

91 Commits

Author SHA1 Message Date
Matheus Castro
15b5a397dd Remove Fibers from meteor-tools:
- Bulk changes to self-tests definitions. Now we go into each one to see what's failing and what's not.
2023-01-18 09:50:54 -03:00
Matheus Castro
ee304af590 Merge branch 'release-3.0' into release-3.0-tools
# Conflicts:
#	packages/babel-compiler/.npm/package/npm-shrinkwrap.json
#	packages/ddp-client/common/livedata_connection.js
#	packages/ddp-server/writefence.js
#	tools/cli/commands-packages.js
#	tools/meteor-services/service-connection.js
#	tools/static-assets/server/boot.js
2022-12-14 22:12:13 -03:00
Matheus Castro
b1a6cc0761 Remove Fibers for meteor tools: turns out the package building is still not done. Still need to check why it's failing to require node_modules when evaluating/loading the plugin. 2022-12-04 00:27:50 -03:00
Matheus Castro
022a7e9303 Remove Fibers for meteor tools:
- Changing package/compile steps to use async/await.
2022-11-25 20:15:37 -03:00
Dirk Stolle
088e52f386 fix a few typos in tools directory 2022-11-03 17:42:40 +01:00
zodern
4440b30290 Use optimistic functions for reading files to lint 2022-08-08 10:49:49 -05:00
Jan Dvorak
b6e127cfc9 Minor tools update
Replace underscore where easy and feasible & other minor modernization that I came across.
2021-06-25 00:36:03 +02:00
filipenevola
96ca5ba498 Fixing class export with classes in Node.js 14 2021-06-14 14:17:08 -04:00
filipenevola
07c77e8556 Merge release-2.3 into feature/accurate-unused-files-tracking 2021-06-14 13:48:11 -04:00
filipenevola
125846cefa Merge branch 'release-2.3' into feature/accurate-unused-files-tracking
# Conflicts:
#	tools/isobuild/compiler.js
2021-06-14 13:46:52 -04:00
zodern
47d1d414fd Use SourceResource for package source resources 2021-05-31 10:46:20 -05:00
Renan Castro
d6aeaf391d Inline KNOWN_ISOBUILD_FEATURE_PACKAGES constant. On node 14, we faced an issue while importing this constant, probably related to changes on ES6 implementation in this version. See the changelog here: https://nodejs.org/en/blog/release/v14.0.0/#notable-changes 2021-05-19 17:56:38 -03:00
Renan Castro
685e321fac User commonjs export 2021-05-19 11:01:00 -03:00
zodern
32958e2d34 Track which files build plugins use the content of 2021-05-14 16:36:18 -05:00
filipenevola
123c696d86 Changing the way to export NodeModulesDirectory to be like the others in the same file
Importing bundler using import instead of require
2021-05-13 09:48:58 -04:00
Ben Newman
b71ab5bec5 Bump compiler.BUILT_BY and LINKER_CACHE_SALT to force rebuild. 2019-11-11 19:12:11 -05:00
Ben Newman
b3d88944ae Explicitly track potentially unused WatchSet files.
The previous implementation simply avoided calling watchSet.addFile for
potentially unused files, trusting that addFile would be called later if
the file was eventually used. However, this strategy left the contents of
watchSet.files incomplete for tasks such as IsopackCache._checkUpToDate,
which require full information about all files, even the ones that might
not be used by the bundle. The new strategy maintains metadata about
potentially unused files in a separate data structure, which will be
merged/cloned/serialized/deserialized along with other WatchSet data.
2019-09-06 16:24:41 -04:00
Ben Newman
4084848d2f Add files to unibuild.watchSet only if needed by unibuild.arch.
Most importantly, this change means that changes to files not used by the
server bundle will not trigger a server restart.

Fixes #10449 by implementing the strategy I described in this comment:
https://github.com/meteor/meteor/pull/10414#issuecomment-481293530
2019-09-05 18:44:19 -04:00
Paulo Mogollón
2ae2690f3a Convert tools/utils/archinfo.js to TypeScript. (#10624)
* Updated code to use modern JS
* Added types
* Stopped using 2 underscore functions (1 remaining)
2019-07-21 12:01:24 -04:00
Ben Newman
769337551e Convert tools/tool-env/profile.js to TypeScript.
Unfortunately, this conversion triggered an error due to one of the
shortcomings of the Babel implementation of TypeScript:

SyntaxError: /tools/tool-env/profile.ts: Namespace not marked type-only declare. Non-declarative namespaces are only supported experimentally in Babel. To enable and review caveats see: https://babeljs.io/docs/en/babel-plugin-transform-typescript
  278 | }
  279 |
> 280 | export namespace Profile {
      |                  ^
  281 |   export let enabled = !! process.env.METEOR_PROFILE;
  282 |
  283 |   export function time<TResult>(bucket: string, f: () => TResult) {
    at File.buildCodeFrameError (/Users/ben/meteor/dev_bundle/lib/node_modules/@babel/core/lib/transformation/file/file.js:261:12)
    at transpileNamespace (/Users/ben/meteor/dev_bundle/lib/node_modules/@babel/plugin-transform-typescript/lib/namespace.js:25:25)
    at PluginPass.TSModuleDeclaration (/Users/ben/meteor/dev_bundle/lib/node_modules/@babel/plugin-transform-typescript/lib/index.js:271:32)
    at newFn (/Users/ben/meteor/dev_bundle/lib/node_modules/@babel/traverse/lib/visitors.js:193:21)
    at NodePath._call (/Users/ben/meteor/dev_bundle/lib/node_modules/@babel/traverse/lib/path/context.js:53:20)
    at NodePath.call (/Users/ben/meteor/dev_bundle/lib/node_modules/@babel/traverse/lib/path/context.js:40:17)
    at NodePath.visit (/Users/ben/meteor/dev_bundle/lib/node_modules/@babel/traverse/lib/path/context.js:88:12)
    at TraversalContext.visitQueue (/Users/ben/meteor/dev_bundle/lib/node_modules/@babel/traverse/lib/context.js:118:16)
    at TraversalContext.visitMultiple (/Users/ben/meteor/dev_bundle/lib/node_modules/@babel/traverse/lib/context.js:85:17)
    at TraversalContext.visit (/Users/ben/meteor/dev_bundle/lib/node_modules/@babel/traverse/lib/context.js:144:19)
2019-07-06 09:18:35 -04:00
Ben Newman
8958cbc5e9 Convert tools/fs/watch.js to TypeScript. 2019-07-05 17:50:20 -04:00
Ben Newman
528b549460 Convert tools/fs/optimistic.js to TypeScript. 2019-07-05 12:29:19 -04:00
Ben Newman
c8766aee77 Bring back files.withCache, with a different implementation. 2019-07-04 14:18:30 -04:00
Ben Newman
62a78c5860 Finish converting tools/fs/files.ts to TypeScript. 2019-07-04 14:18:29 -04:00
Ben Newman
5ed64fb1db Remove explicit .js extension from tools/fs/files imports. 2019-07-04 10:32:09 -04:00
zodern
d0de6e1176 Add assets to watchSet, again (#10565)
Follow-up to #10452.
2019-06-17 12:51:33 -04:00
Ben Newman
683d23cdee Bump compiler.BUILT_BY and LINKER_CACHE_SALT to force rebuild. 2019-05-04 18:08:49 -04:00
zodern
f11b905185 Use optimistic functions with assets 2019-02-13 11:13:00 -06:00
Ben Newman
20da99c219 Do not treat client and server directories specially in packages. (#10414)
Fixes #10393.

Bumping compiler.BUILT_BY and LINKER_CACHE_SALT because
PR #10414 changes the behavior of the build system in a subtle way that
does not automatically trigger recompilation.
2019-01-11 16:52:23 -05:00
Ben Newman
ecddfcd08d Use binding behavior of buildmessage.markBoundary in more places.
This functionality was introduced in 7b6fd0ee10.
2018-07-04 10:12:52 -04:00
Ben Newman
d64e87b852 Bump LINKER_CACHE_SALT and compiler.BUILT_BY for good measure. 2018-05-16 20:43:26 -04:00
Ben Newman
ed28140071 Support a new web.browser.legacy platform. 2018-01-22 17:54:42 -05:00
Ben Newman
c7a9d61a68 Allow processFilesFor{Target,Bundle,Package} to return a Promise.
This paves the way for compiler plugins to use normal async/await rather
than using fibers and/or futures to wait for async compilation to finish.
2018-01-16 16:58:48 -05:00
Hugh Willson
76736137b7 Prevent Tool crash when node_modules source watcher is removed (#9433)
When sources in the `node_modules` directory are being watched
by a build plugin, if that build plugin is removed while the
Tool is running, the Tool can crash. This is because the Tool
currently see's this situation as an improbable edge case, and
purposely errors out instead of allowing the Tool to continue.
This commit adjusts the Tool to swallow this exception
thereby allowing the rebuild process to continue normally
(and avoiding a Tool crash). Given that the liklihood of this
situation happening is quite low, and the impact of allowing
the rebuild to continue is neglibile (if source files are
no longer handled by a build plugin, app developers will
notice quickly), this seems like an acceptable way forward.

Fixes #8644.
2017-12-02 17:19:11 -05:00
Ben Newman
35e70fd23d Stop adding line number comments to linked JavaScript files. (#9323)
Several years ago, before all major browsers supported source maps, we
felt it was important to provide line number information in generated
files using end-of-line comments like "// 123\n".

Adding all these comments was always slower than leaving the code
unmodified, and recently they have begun interacting badly with certain
newer ECMAScript syntax, such as multi-line template strings (#9160).

Since source maps are well supported in most browsers that developers are
likely to be using for development, and the line number comments are now
causing substantive problems beyond the performance cost, I think it's
time we stopped using them once and for all.

Fixes #9160.
2017-11-08 12:04:59 -05:00
Ben Newman
159ddefd1d Bump LINKER_CACHE_SALT and compiler.BUILT_BY for good measure. 2017-10-08 14:05:42 -04:00
Ben Newman
7fd4fd559b Support .meteorignore files.
Closes https://github.com/meteor/meteor-feature-requests/issues/5.
2017-09-22 08:47:37 -04:00
Rick van der Plas
e71a9e9856 Updated old github wiki references to Meteor Guide/API docs 2017-06-24 18:44:10 +02:00
Ben Newman
da097e209d Bump LINKER_CACHE_SALT and compiler.BUILT_BY for good measure. 2017-05-30 14:16:46 -04:00
Ben Newman
fba9e9dfe9 Restrict the dynamic-import package to Meteor 1.5+ apps. 2017-05-10 11:31:39 -04:00
Ben Newman
75ada39092 Bump LINKER_CACHE_SALT and compiler.BUILT_BY for good measure.
Recent updates to meteor-babel and reify make it particularly important to
force recompilation of ECMAScript modules and package/app bundles.
2017-05-09 15:21:42 -04:00
Ben Newman
8e344a324a Bump LINKER_CACHE_SALT and compiler.BUILT_BY for good measure. 2017-02-07 16:18:40 -05:00
Ben Newman
24b0ea9fdd Bump compiler/linker/bundler salts to trigger fresh builds. 2016-11-14 21:18:03 -05:00
Ben Newman
4ada5c8a17 Bump LINKER_CACHE_SALT and compiler.BUILT_BY for good measure.
This will trigger recompilation and relinking, which should help prevent
various stale caching issues, e.g. #7977.
2016-11-08 13:50:32 -05:00
Ben Newman
739890d955 Bump compiler.BUILT_BY and LINKER_CACHE_SALT. 2016-10-23 18:17:26 -04:00
Ben Newman
2ec570251a Stop generating identity source maps for files without actual source maps.
This speeds up both getPrelinkedOutput (because we don't spend any time
generating the identity source map) and toStringWithSourceMap (because we
don't have to combine those source maps).

We still generate line number comments for files without source maps, so
it's relatively easy to find the source line for a stack trace.
2016-10-05 17:54:34 -04:00
Ben Newman
b976cfa552 Fix reference error for file variable in tools/isobuild/compiler.js. 2016-09-27 11:03:28 -04:00
Ben Newman
50a1f11a10 Use optimistic functions in compileUnibuild. 2016-09-26 20:04:29 -04:00
Ben Newman
61c1ab0cac Avoid colons in .npm/plugin/... paths.
Fixes #7661.
2016-08-17 18:08:29 -04:00
Ben Newman
31155ad990 Do not run npm rebuild for local node_modules directories.
Since we do not write .meteor-last-rebuild-version.json files when
developers run `meteor npm install ...`, this commit saves us from
unnecessarily rebuilding any freshly-installed binary npm dependencies
when Meteor starts.
2016-08-16 17:36:18 -04:00