From 578cbe1ea91fb8da5dc12faebb2416008e4f864b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filipe=20N=C3=A9vola?= Date: Wed, 18 Sep 2024 07:45:39 -0400 Subject: [PATCH 1/9] Improves Top-level await docs --- v3-docs/docs/api/top-level-await.md | 48 ++++++++++++++--------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/v3-docs/docs/api/top-level-await.md b/v3-docs/docs/api/top-level-await.md index 8fbfa4aef6..672dc83423 100644 --- a/v3-docs/docs/api/top-level-await.md +++ b/v3-docs/docs/api/top-level-await.md @@ -1,13 +1,13 @@ # Top Level Await -[Top level await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await#top_level_await) (TLA) allows you to use `await` in the top level of a module or file instead of only in async functions. One way to view it is as if every file runs inside an `async` function. +[Top-level await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await#top_level_await) (TLA) allows you to use `await` in the top-level of a module or file instead of only in async functions. One way to view it is as if every file runs inside an `async` function. -Here is an example of using top level await on the server. When this file is loaded, the `await` will cause the module to wait for the count before the code in the rest of the module is run. +Here is an example of using top-level await on the server. When this file is loaded, the `await` will cause the module to wait for the count before the code in the rest of the module is run. ```js const Links = new Mongo.Collection('links'); -// Async code using top level await. +// Async code using top-level await. // The module waits for this to finish before continuing const count = await Links.find().countAsync(); @@ -16,29 +16,29 @@ if (count === 0) { } ``` -In previous versions of Meteor, async code using fibers could be run in the top level of a module. Top level await allows writing similar code that works without fibers. There are a few differences that this article will cover. +Before Meteor 3, async code using fibers could run at the top level of a module. Top-level await allows similar code to work without fibers. This article will cover a few differences. -Meteor's implementation of top level await tries to closely follow the specification. There currently are some differences with how Meteor handles circular dependencies. +Meteor's implementation of top-level await tries to closely follow the specification. However, there are currently some differences in how Meteor handles circular dependencies. ## Using Top Level Await -Top level await can be used in any app or package that uses the `ecmascript`, `typescript`, or `coffeescript` packages, or that uses any other build plugin that compiles top level await using reify. -Generally, if you can use ECMAScript modules, then you can also use top level await. +Top-level await can be used in any app or package that uses the `ecmascript`, `typescript`, or `coffeescript` packages, or that uses any other build plugin that compiles top-level await using reify. +Generally, if you can use ECMAScript modules, then you can also use top-level await. -There are some extra considerations when using top level await in packages. They are covered later in this article. +There are some extra considerations when using top-level await in packages. They are covered later in this article. -Top level await is only enabled by default on the server. You can enable it for the client by setting the env var `METEOR_ENABLE_CLIENT_TOP_LEVEL_AWAIT` to `true`. There are a couple known issues with using TLA on the client: +Top-level await is only enabled by default on the server. You can enable it for the client by setting the env var `METEOR_ENABLE_CLIENT_TOP_LEVEL_AWAIT` to `true`. There are a couple known issues with using TLA on the client: 1. It breaks any files in `/client/compatibility` since it now wraps those files in a function 2. Hot module replacement has not been updated to work with TLA ## Async Modules -With top level await, some modules are considered async, which affects how they behave. There are two ways a module can become an async module: -1. It uses top level await +With top-level await, some modules are considered async, which affects how they behave. There are two ways a module can become an async module: +1. It uses top-level await 2. It imports a module that is async -For example, this module (`setup.js`) would be async because it uses top level await: +For example, this module (`setup.js`) would be async because it uses top-level await: ```js await setupLanguages(); @@ -50,7 +50,7 @@ This module (`main.js`) would be sync: console.log('in main.js'); ``` -However, if it imports `setup.js` which does use top level await, then `main.js` also becomes async. +However, if it imports `setup.js` which does use top-level await, then `main.js` also becomes async. ```js import './setup.js'; @@ -67,10 +67,10 @@ When using `require` to load an async module, instead of directly returning a mo const promise = require('./init.js'); ``` -If you are using `require`, this does mean you need to be careful when adding or removing top level await in a file since you also have to update where the module is required. -Since a module becomes async if it depends on an async module, this could affect more than just the individual modules using top level await. +If you are using `require`, this does mean you need to be careful when adding or removing top-level await in a file since you also have to update where the module is required. +Since a module becomes async if it depends on an async module, this could affect more than just the individual modules using top-level await. -When possible, you can use ecmascript import syntax or dynamic imports instead so you don't have to worry about which modules are sync or async. +When possible, you can use ECMAScript import syntax or dynamic imports instead so you don't have to worry about which modules are sync or async. ## Nested Imports @@ -88,13 +88,13 @@ export function showNotification(message) { } ``` - This is a feature unique to Meteor, so the top level await specification wasn't written to work with nested imports. Using nested imports to import a sync module continues to work, but it will throw an error if used to import an async module. You can use `require` or dynamic imports for async modules in these situations. +This feature is unique to Meteor, so the top-level await specification wasn't written to work with nested imports. Using nested imports to import a sync module continues to work, but it will throw an error if used to import an async module. You can use `require` or dynamic imports for async modules in these situations. ## Using in Packages -Top level await is only supported starting in Meteor 3. Published build plugins are able to use top level await in older Meteor versions since the runtime is bundled when they are published, though in development they require Meteor 3. +Top-level await is only supported starting in Meteor 3. Published build plugins are able to use top-level await in older Meteor versions since the runtime is bundled when they are published, though in development they require Meteor 3. -If you want to ensure your package only runs in versions of Meteor that support top level await, you can have your package use `isobuild:top-level-await`: +If you want to ensure your package only runs in versions of Meteor that support top-level await, you can have your package use `isobuild:top-level-await`: ```js Package.onUse(function (api) { @@ -103,17 +103,17 @@ Package.onUse(function (api) { }); ``` -When importing a package that does not have a lazy main module, it will work the same whether a package uses top level await or not. This is true even when using `require`. This allows packages to add or remove top level await without it being a breaking change. +When importing a package that does not have a lazy main module, it will work the same whether a package uses top-level await or not. This is true even when using `require`. This allows packages to add or remove top-level await without it being a breaking change. -There are a couple cases where adding or removing top level await from a module in a package could be considered a breaking change: +There are a couple of cases where adding or removing top-level await from a module in a package could be considered a breaking change: 1. If specific modules are require'd from a package. For example: `require('meteor/zodern:aurorae/svelte.js')`. When importing a specific module from a package, `require` changes its behavior based on if the module is async or not. 2. If a package that has lazy main modules is require'd. Unlike normal packages, `require` will return a promise if the lazy main module is an async module. Changing if the lazy main module is async or not should be considered a breaking change for the package. ## Module and Package Execution Order -Normally, modules are run one at a time. This was even true when using async code with fibers in the root of a module. However, top level await is different - it allows siblings (modules that do not depend on each other) to sometimes run in parallel. This can allow the app to load faster, which is especially important on the client. However, this could cause code to run in an unexpected order if you are used to how Meteor worked with fibers. +Normally, modules are run one at a time. This was even true when using async code with fibers in the root of a module. However, top-level await is different - it allows siblings (modules that do not depend on each other) to sometimes run in parallel. This can allow the app to load faster, which is especially important on the client. However, this could cause code to run in an unexpected order if you are used to how Meteor works with fibers. -This is also applies to packages. Packages that do not directly or indirectly depend on each other are able to load in parallel if they use top level await. +This also applies to packages. Packages that do not directly or indirectly depend on each other can load in parallel if they use top-level await. -Modules that are eagerly evaluated (added in packages with `api.addFiles`, or outside of `imports` in apps that do not have a main module) and not directly imported continue to run one at a time, even if they use top level await, since it is common for these modules to implicitly depend on the previous modules. +Modules that are eagerly evaluated (added in packages with `api.addFiles`, or outside of `imports` in apps that do not have a main module) and not directly imported continue to run one at a time, even if they use top-level await since it is common for these modules to implicitly depend on the previous modules. From 4479ac6ce69588fb9f5f16c08edc0954f5a66e59 Mon Sep 17 00:00:00 2001 From: denihs Date: Wed, 18 Sep 2024 16:51:07 -0400 Subject: [PATCH 2/9] update the changelog --- v3-docs/docs/generators/changelog/versions/3.0.3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v3-docs/docs/generators/changelog/versions/3.0.3.md b/v3-docs/docs/generators/changelog/versions/3.0.3.md index c4902c1514..aa74957706 100644 --- a/v3-docs/docs/generators/changelog/versions/3.0.3.md +++ b/v3-docs/docs/generators/changelog/versions/3.0.3.md @@ -1,4 +1,4 @@ -## v3.0.3, 2024-09-xx +## v3.0.3, 2024-09-11 ### Highlights From c3f344dd4471ea120bed4f9c3cae9541d2ccae4e Mon Sep 17 00:00:00 2001 From: Frederico Maia Date: Thu, 19 Sep 2024 10:26:14 -0300 Subject: [PATCH 3/9] Fix some broken links --- v3-docs/docs/.vitepress/config.mts | 4 ++-- v3-docs/docs/api/collections.md | 2 +- .../docs/tutorials/vue/meteorjs3-vue3-vue-meteor-tracker.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/v3-docs/docs/.vitepress/config.mts b/v3-docs/docs/.vitepress/config.mts index b857835168..8c70c93d32 100644 --- a/v3-docs/docs/.vitepress/config.mts +++ b/v3-docs/docs/.vitepress/config.mts @@ -401,11 +401,11 @@ export default defineConfig({ // TODO: Open issue in Vitepress about this { link: "/history", text: "Meteor.js v3 (Current)" }, { - link: "https://docs.meteor.com/changelog", + link: "https://v2-docs.meteor.com/changelog", text: "Meteor.js v2", }, { - link: "https://docs.meteor.com/changelog#v112220211012", + link: "https://v2-docs.meteor.com/changelog#v112220211012", text: "Meteor.js v1", }, ], diff --git a/v3-docs/docs/api/collections.md b/v3-docs/docs/api/collections.md index cecd75f58f..36cc1910b4 100644 --- a/v3-docs/docs/api/collections.md +++ b/v3-docs/docs/api/collections.md @@ -1179,7 +1179,7 @@ certificates configurations. ### Mongo Oplog Options {#mongo-oplog-options} > Oplog options were introduced in Meteor 2.15.1 -If you set the [`MONGO_OPLOG_URL`](https://docs.meteor.com/environment-variables.html#MONGO-OPLOG-URL) env var, Meteor will use MongoDB's Oplog to show efficient, real time updates to your users via your subscriptions. +If you set the [`MONGO_OPLOG_URL`](/cli/environment-variables.html#mongo-oplog-url) env var, Meteor will use MongoDB's Oplog to show efficient, real time updates to your users via your subscriptions. Due to how Meteor's Oplog implementation is built behind the scenes, if you have certain collections where you expect **big amounts of write operations**, this might lead to **big CPU spikes on your meteor app server, even if you have no publications/subscriptions on any data/documents of these collections**. For more information on this, please have a look into [this blog post from 2016](https://blog.meteor.com/tuning-meteor-mongo-livedata-for-scalability-13fe9deb8908), [this github discussion from 2022](https://github.com/meteor/meteor/discussions/11842) or [this meteor forums post from 2023](https://forums.meteor.com/t/cpu-spikes-due-to-oplog-updates-without-subscriptions/60028). diff --git a/v3-docs/docs/tutorials/vue/meteorjs3-vue3-vue-meteor-tracker.md b/v3-docs/docs/tutorials/vue/meteorjs3-vue3-vue-meteor-tracker.md index b96907c4c4..55b5583714 100644 --- a/v3-docs/docs/tutorials/vue/meteorjs3-vue3-vue-meteor-tracker.md +++ b/v3-docs/docs/tutorials/vue/meteorjs3-vue3-vue-meteor-tracker.md @@ -314,7 +314,7 @@ import '../imports/api/tasksPublications'; ``` ::: -> If you want to learn more about how publications works, you can read the [Meteor Guide](https://docs.meteor.com/api/pubsub.html). +> If you want to learn more about how publications works, you can read [here](/api/meteor.html#pubsub). Now, your app should look like this: From 35041564458eb15da49bd228ae0214ea4f0e13f8 Mon Sep 17 00:00:00 2001 From: Frederico Maia Date: Thu, 19 Sep 2024 15:12:53 -0300 Subject: [PATCH 4/9] Remove Kapa.ai from the v2 docs and add a legacy warning. --- docs/scripts/kapa.js | 18 ----------------- docs/scripts/legacy-warning.js | 35 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 18 deletions(-) delete mode 100644 docs/scripts/kapa.js create mode 100644 docs/scripts/legacy-warning.js diff --git a/docs/scripts/kapa.js b/docs/scripts/kapa.js deleted file mode 100644 index 9c9e5c8d5a..0000000000 --- a/docs/scripts/kapa.js +++ /dev/null @@ -1,18 +0,0 @@ -hexo.extend.filter.register('after_render:html', function(html) { - const scriptTag = ` - -`.trim(); - - if (html.indexOf('') !== -1) { - return html.replace('', scriptTag + ''); - } - - return html; -}); \ No newline at end of file diff --git a/docs/scripts/legacy-warning.js b/docs/scripts/legacy-warning.js new file mode 100644 index 0000000000..3c54aadb33 --- /dev/null +++ b/docs/scripts/legacy-warning.js @@ -0,0 +1,35 @@ +/* global hexo */ + +hexo.extend.filter.register('after_render:html', function (str) { + const warningMessage = ` +
+

+ ⚠️ You're browsing the documentation for an old version of Meteor.js. + Check out the v3 docs and migration guide. +

+
+ `; + + const css = ` + + `; + + const injectedContent = css + warningMessage; + + return str.replace(/
/, `
${injectedContent}`); +}); \ No newline at end of file From eb68b8a8ce251a9d38e12064351298f96f5ccb3d Mon Sep 17 00:00:00 2001 From: denihs Date: Fri, 20 Sep 2024 13:22:33 -0400 Subject: [PATCH 5/9] update our mongo docs about authentication error --- v3-docs/docs/api/collections.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/v3-docs/docs/api/collections.md b/v3-docs/docs/api/collections.md index 36cc1910b4..e85cf3ff92 100644 --- a/v3-docs/docs/api/collections.md +++ b/v3-docs/docs/api/collections.md @@ -1175,6 +1175,11 @@ option: You can pass any MongoDB valid option, these are just examples using certificates configurations. +If you're using a certificate and having authentication errors when trying to connect to a database other than `admin`, make sure to provide the flags `&ssl=true&authSource=admin`. You MONGO_URL string should look like this: + +``` +mongodb://:@[server-1],[server-2],[server-3]/my-database?replicaSet=my-replica&ssl=true&authSource=admin +``` ### Mongo Oplog Options {#mongo-oplog-options} From 3ab2dcc3466ba855a1fa64d9cb04f39fd26272ea Mon Sep 17 00:00:00 2001 From: Frederico Maia Date: Fri, 20 Sep 2024 18:07:07 -0300 Subject: [PATCH 6/9] docs: update VitePress config and web apps documentation --- v3-docs/docs/.vitepress/config.mts | 6 ++- v3-docs/docs/about/web-apps.md | 54 +++++++++++++++++++ v3-docs/docs/about/what-is.md | 18 ++++--- .../vue/meteorjs3-vue3-vue-meteor-tracker.md | 2 +- 4 files changed, 72 insertions(+), 8 deletions(-) create mode 100644 v3-docs/docs/about/web-apps.md diff --git a/v3-docs/docs/.vitepress/config.mts b/v3-docs/docs/.vitepress/config.mts index 8c70c93d32..387422f95e 100644 --- a/v3-docs/docs/.vitepress/config.mts +++ b/v3-docs/docs/.vitepress/config.mts @@ -155,7 +155,10 @@ export default defineConfig({ text: "Install Meteor", link: "/about/install", }, - // TODO: Your first app meteor app + { + text: "Web Apps", + link: "/about/web-apps", + }, { text: "Cordova", link: "/about/cordova", @@ -384,6 +387,7 @@ export default defineConfig({ { text: "Tutorials", items: [ + { link: "/tutorials/", text: "Tutorials" }, { text: "Meteor.js 3 + React", link: "/tutorials/react/index", diff --git a/v3-docs/docs/about/web-apps.md b/v3-docs/docs/about/web-apps.md new file mode 100644 index 0000000000..e9bff6c756 --- /dev/null +++ b/v3-docs/docs/about/web-apps.md @@ -0,0 +1,54 @@ +# Web Apps + +Meteor allows developers to build web applications using front-end frameworks like React, Vue, Blaze, Svelte, and Solid. +This section will help you quickly set up a new MeteorJS project using React. + +## Step 1: Install Meteor + +Ensure you have the latest official Meteor release installed. You can find installation instructions in our [docs](/about/install.html). + +## Step 2: Create a New Project + +To create a new project with Meteor and React, use the command: + +```shell +meteor create myapp +``` + +This command sets up a Meteor project with React, allowing you to start developing right away. + +You can also add the `--react` option to explicitly choose React, but it's already included by default. +If you prefer TypeScript, simply add the `--typescript` option. + +```shell +meteor create myapp --typescript +``` + +### Additional Options + +Meteor offers flags to generate different types of apps, like choosing a different front-end framework or configurations during project setup. + +Additional options are available in the [Meteor CLI](/cli/#meteor-create-app-name) section. + +## Step 3: Run Your Project Locally + +Navigate into your project directory and start the Meteor server: + +```shell +cd myapp +meteor +``` + +With no arguments, `meteor` runs the project in the current directory in local development mode. +Your application will be running at http://localhost:3000/, ready for you to begin development. + +## Getting Help + +You can find help for using the Meteor command line. Just run `meteor help` to see a list of common commands. +If you want detailed help about a specific command, run `meteor help `. For example, `meteor help create`. + +## Next Steps + +- Follow the [React](/tutorials/react/index.html) or [Vue](/tutorials/vue/meteorjs3-vue3-vue-meteor-tracker.html) tutorials. New tutorials are coming soon. +- Read about [Cordova for Mobile Apps](/about/cordova.html). +- Explore the [Meteor Guide](https://guide.meteor.com/). \ No newline at end of file diff --git a/v3-docs/docs/about/what-is.md b/v3-docs/docs/about/what-is.md index 329bd9c990..ac111c1869 100644 --- a/v3-docs/docs/about/what-is.md +++ b/v3-docs/docs/about/what-is.md @@ -12,7 +12,7 @@ Meteor is a full-stack JavaScript platform for developing modern web and mobile applications. Meteor includes a key set of technologies for building connected-client reactive applications, a build tool, and a curated set of packages from the Node.js and general JavaScript community. -- Meteor allows you to develop in **one language**, JavaScript, in all environments: application server, web browser, and mobile device. +- Meteor allows you to develop in **one language**, JavaScript or TypeScript, in all environments: application server, web browser, and mobile device. - Meteor uses **data on the wire**, meaning the server sends data, not HTML, and the client renders it. @@ -20,15 +20,21 @@ Meteor is a full-stack JavaScript platform for developing modern web and mobile - Meteor provides **full stack reactivity**, allowing your UI to seamlessly reflect the true state of the world with minimal development effort. +- Meteor offers **flexibility in front-end** development, allowing you to choose your preferred framework such as React, Vue, Blaze, Svelte, or Solid. + +- Meteor **simplifies back-end and front-end integration** through Methods, its built-in Remote Procedure Call (RPC) system for seamless communication. + +- Meteor includes a **ready-to-use Login and Accounts** package, eliminating the need to rebuild authentication systems for your applications. + ## Meteor Resources {#learning-more} ### Learning Meteor - Start by learning how to install Meteor in the [Installation Section](/about/install.html). -- For beginners, the [Tutorials](https://www.meteor.com/developers/tutorials) are the perfect place to start with Meteor. Build a simple app to manage a task list! Available for [React](https://react-tutorial.meteor.com/), [Blaze](https://blaze-tutorial.meteor.com/), [Svelte](https://svelte-tutorial.meteor.com/), and [Vue 3](https://vue3-tutorial.meteor.com/). +- The tutorials are the perfect place to start. Build a simple app to manage a task list! Available for [React](/tutorials/react/index.html), and [Vue 3](/tutorials/vue/meteorjs3-vue3-vue-meteor-tracker.html). Blaze and Svelte tutorials are coming soon. -- Participate in Meteor's fully professional, engaging and interactive online school. Join [Meteor University](https://university.meteor.com/). +- Participate in Meteor's fully professional, engaging and interactive online school. Join [Meteor University](https://university.meteor.com/). Our courses cover Meteor 2 but most of the content is still relevant. - Subscribe to our official [Youtube channel](https://www.youtube.com/@meteorsoftware) and watch the latest MeteorJS videos and presentations. @@ -46,8 +52,8 @@ Meteor is a full-stack JavaScript platform for developing modern web and mobile ### Join Our Community -- Participate in the [Official Forum](https://forums.meteor.com) for project news, support, community discussions, and updates on core features. +- Participate in the [Official Forum](https://forums.meteor.com) for project news, support, and community discussions. -- Join the discussion and stay updated with announcements on the official [Meteor Lounge Discord](https://discord.gg/hZkTCaVjmT). +- Join the discussion and live streams on the official [Meteor Lounge Discord](https://discord.gg/hZkTCaVjmT). -- Engage with peers in the [Meteor Slack Community](https://join.slack.com/t/meteor-community/shared_invite/enQtODA0NTU2Nzk5MTA3LWY5NGMxMWRjZDgzYWMyMTEyYTQ3MTcwZmU2YjM5MTY3MjJkZjQ0NWRjOGZlYmIxZjFlYTA5Mjg4OTk3ODRiOTc) for technical support, meeting new developers, and exchanging ideas. +- Engage with peers in the [Meteor Slack Community](https://join.slack.com/t/meteor-community/shared_invite/enQtODA0NTU2Nzk5MTA3LWY5NGMxMWRjZDgzYWMyMTEyYTQ3MTcwZmU2YjM5MTY3MjJkZjQ0NWRjOGZlYmIxZjFlYTA5Mjg4OTk3ODRiOTc). diff --git a/v3-docs/docs/tutorials/vue/meteorjs3-vue3-vue-meteor-tracker.md b/v3-docs/docs/tutorials/vue/meteorjs3-vue3-vue-meteor-tracker.md index 55b5583714..1080849c5a 100644 --- a/v3-docs/docs/tutorials/vue/meteorjs3-vue3-vue-meteor-tracker.md +++ b/v3-docs/docs/tutorials/vue/meteorjs3-vue3-vue-meteor-tracker.md @@ -1,4 +1,4 @@ -# Building with Meteor.js 3, Vue 3 and `vue-meteor-tracker` +# Meteor.js 3 + Vue 3 and `vue-meteor-tracker` In this tutorial, we will create a simple To-Do app using [Vue 3](https://vuejs.org/) and Meteor 3.0. Meteor works well with other frameworks like [Blaze](https://www.blazejs.org/), [React](https://react.dev/), [Solid](https://www.solidjs.com/), and [Svelte](https://svelte.dev/). From 1da6e1404601905cfa46f66746541ae190165895 Mon Sep 17 00:00:00 2001 From: Frederico Maia Date: Fri, 20 Sep 2024 18:08:42 -0300 Subject: [PATCH 7/9] Remove tutorials link --- v3-docs/docs/.vitepress/config.mts | 1 - 1 file changed, 1 deletion(-) diff --git a/v3-docs/docs/.vitepress/config.mts b/v3-docs/docs/.vitepress/config.mts index 387422f95e..653f1b3b21 100644 --- a/v3-docs/docs/.vitepress/config.mts +++ b/v3-docs/docs/.vitepress/config.mts @@ -387,7 +387,6 @@ export default defineConfig({ { text: "Tutorials", items: [ - { link: "/tutorials/", text: "Tutorials" }, { text: "Meteor.js 3 + React", link: "/tutorials/react/index", From 45d18fee36d22639445dabcd25c29fd85af9740b Mon Sep 17 00:00:00 2001 From: denihs Date: Mon, 23 Sep 2024 10:49:04 -0400 Subject: [PATCH 8/9] fix dead link build error --- v3-docs/docs/about/web-apps.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v3-docs/docs/about/web-apps.md b/v3-docs/docs/about/web-apps.md index e9bff6c756..b39454e0b1 100644 --- a/v3-docs/docs/about/web-apps.md +++ b/v3-docs/docs/about/web-apps.md @@ -40,7 +40,7 @@ meteor ``` With no arguments, `meteor` runs the project in the current directory in local development mode. -Your application will be running at http://localhost:3000/, ready for you to begin development. +Your application will be running at `http://localhost:3000/`, ready for you to begin development. ## Getting Help @@ -51,4 +51,4 @@ If you want detailed help about a specific command, run `meteor help `. - Follow the [React](/tutorials/react/index.html) or [Vue](/tutorials/vue/meteorjs3-vue3-vue-meteor-tracker.html) tutorials. New tutorials are coming soon. - Read about [Cordova for Mobile Apps](/about/cordova.html). -- Explore the [Meteor Guide](https://guide.meteor.com/). \ No newline at end of file +- Explore the [Meteor Guide](https://guide.meteor.com/). From c410e422a59c636d75a01ea5e1b061c080e3f4d4 Mon Sep 17 00:00:00 2001 From: denihs Date: Tue, 24 Sep 2024 08:50:03 -0400 Subject: [PATCH 9/9] add common errors section to our guide --- .../v3-migration-docs/.vitepress/config.mts | 1 + .../v3-migration-docs/guide/common-errors.md | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 v3-docs/v3-migration-docs/guide/common-errors.md diff --git a/v3-docs/v3-migration-docs/.vitepress/config.mts b/v3-docs/v3-migration-docs/.vitepress/config.mts index 5725965a6b..f73619a76a 100644 --- a/v3-docs/v3-migration-docs/.vitepress/config.mts +++ b/v3-docs/v3-migration-docs/.vitepress/config.mts @@ -22,6 +22,7 @@ export default defineConfig({ {text: "Meteor.call x Meteor.callAsync", link: "/breaking-changes/call-x-callAsync"}, {text: "Upgrading packages", link: "/breaking-changes/upgrading-packages"}, {text: "Publishing Packages", link: "/guide/publishing-packages"}, + {text: "Common Errors", link: "/guide/common-errors"}, ] }, { diff --git a/v3-docs/v3-migration-docs/guide/common-errors.md b/v3-docs/v3-migration-docs/guide/common-errors.md new file mode 100644 index 0000000000..9dd7a086f2 --- /dev/null +++ b/v3-docs/v3-migration-docs/guide/common-errors.md @@ -0,0 +1,24 @@ +# Common Errors + +Below you will find a collection of documented common errors you may encounter when migrating from Meteor version 2 to version 3. Each error includes an explanation of why it happens and a recommended solution. + +If there is any other issues you think should be here, please report them in our [Forums](https://forums.meteor.com/). + +## Cannot Enlarge Memory Array + +**Why this happens:** + +This error occurs when the memory allocated for the build process is insufficient, often due to the large number of dependencies being processed in the migration to Meteor 3. As you update, the system tries to handle all dependencies, and older or larger packages may cause the build to run out of memory. + +**How to solve it:** + +To resolve this issue, follow these steps: + +1. Temporarily reduce the number of meteor packages in your `.meteor/packages` file by removing non-essential or outdated ones. +2. Rebuild the application with the minimal set of packages. +3. Gradually add back the packages, one at a time, to identify which one(s) might be causing the issue. +4. Update or replace outdated packages as needed. + +By reducing the package footprint and updating dependencies, you should be able to complete the migration without memory-related errors. + +This error was lastly reported [here](https://forums.meteor.com/t/meteor-update-fails/62171).