Conversation
for the JS documentation
EtienneM
left a comment
There was a problem hiding this comment.
I just quickly went through this. Overall it's kind of ok. But the content still need a lot of human review. We can't merge it as is. There is a lot of duplicated content. I find there are some pages with useless content. The content is often too long, for nothing, hiding the real useful content behind lots of useless words.
There was a problem hiding this comment.
question: I don't understand the removal of this page. We used to have lots of questions about Puppeteer. There is a lot of information lost here
| ## Scalingo stack context | ||
|
|
||
| ## Node.js Versions | ||
| A Scalingo stack is the Ubuntu-based operating-system image used by the application's build and runtime containers. The stack is separate from the Node.js release selected through `engines.node`. | ||
|
|
||
| ### Availability | ||
| Each listed stack uses an Ubuntu long-term support (LTS) release. | ||
|
|
||
| The following Node.js versions are available: | ||
| | Stack | Base operating system | Status | Lifecycle | | ||
| | --- | --- | --- | --- | | ||
| | `scalingo-22` | Ubuntu 22.04 LTS | Deprecated | Discontinued on 1 June 2027 | | ||
| | `scalingo-24` | Ubuntu 24.04 LTS | Supported | Supported through May 2029 | | ||
| | `scalingo-26` | Ubuntu 26.04 LTS | Supported and latest | Supported through May 2031 | | ||
|
|
||
| | Node.js version | `scalingo-22` ([EOL]) | `scalingo-24` | `scalingo-26` | | ||
| | --------------: | --------------------: | --------------: | --------------: | | ||
| | `v26` | up to `26.5.1` | up to `26.5.1` | up to `26.5.1` | | ||
| | `v24` (LTS) | up to `24.18.1` | up to `24.18.1` | up to `24.18.1` | | ||
| | `v22` (LTS) | up to `22.23.2` | up to `22.23.2` | up to `22.23.2` | | ||
| New applications currently use `scalingo-26` by default. Existing applications keep their selected stack until it is changed and the application is redeployed. | ||
|
|
||
| {% include scalingo_22_deprecation_note.md %} | ||
|
|
||
| ### Select a Version | ||
|
|
||
| The default Node.js version on all stacks is the latest `v24` version. If you | ||
| need to install another version, specify it in the `engines.node` key of your | ||
| `package.json` file.\\ | ||
| For example, to install the latest Node.js version of the `v24` branch: | ||
|
|
||
| ```json | ||
| { | ||
| "name": "my-app", | ||
| "engines": { | ||
| "node": "24" | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| ### Dependencies Installation | ||
|
|
||
| The dependencies of your project are installed either with the [npm package | ||
| manager](https://www.npmjs.com/) or the [Yarn package | ||
| manager](https://yarnpkg.com/). | ||
|
|
||
| If a `yarn.lock` file is present at the root of your project, yarn will be used | ||
| to install the dependencies and run scripts, otherwise npm will build the | ||
| dependencies during the deployment. | ||
|
|
||
| If a `package-lock.json` file is present at the root of your project and you | ||
| are using npm version 6 or higher, Scalingo will use `npm ci` (for | ||
| `clean-install`) to install your dependencies. Otherwise Scalingo will fallback | ||
| to `npm install`. | ||
|
|
||
| {% note %} | ||
| You can specify the version of yarn you want to use by defining it in the | ||
| `package.json` file, with the key `engines.yarn`. | ||
| {% endnote %} | ||
|
|
||
| ### Private Dependency | ||
|
|
||
| {% note %} | ||
| Yarn does not handle private modules, if you use them, keep using npm | ||
| {% endnote %} | ||
|
|
||
| #### NPM Private Modules | ||
|
|
||
| First you need to create a read-only token with the NPM account you want to authenticate: | ||
|
|
||
| ``` | ||
| npm token create --read-only | ||
| ``` | ||
|
|
||
| Then set this token as environment variable (replace the 0-value by the token obtained in the previous command): | ||
| Check an application's stack: | ||
|
|
||
| ```bash | ||
| scalingo env-set NPM_TOKEN=00000000-0000-0000-0000-00000000 | ||
| ``` | ||
|
|
||
| Add the following NPM configuration file `.npmrc` to the root directory of your project: | ||
|
|
||
| ``` | ||
| //registry.npmjs.org/:_authToken=${NPM_TOKEN} | ||
| scalingo --app my-app apps-info | ||
| ``` | ||
|
|
||
| Add this file and commit it in your Git repository, the environment variable will be automatically used during the build. | ||
|
|
||
| ### Configuring NPM | ||
|
|
||
| Sometimes a project needs custom npm behavior to set up proxies, use a different registry, etc. For such behavior, simply include an .npmrc file in the root of your project. | ||
| List the stacks available to your account: | ||
|
|
||
| ``` | ||
| # .npmrc | ||
| registry = 'https://custom-registry.com/' | ||
| ```bash | ||
| scalingo stacks | ||
| ``` | ||
|
|
||
| npm will also read the configuration from any environment variable starting with NPM_CONFIG. | ||
|
|
||
| {% note %} | ||
| If NPM_CONFIG_PRODUCTION is true, npm will automatically run all scripts in a subshell where NODE_ENV is 'production'. | ||
| The number in a stack name identifies the Ubuntu release, not the Node.js release. An application using `scalingo-24` can run Node.js 22, 24, or 26 when that Node.js line is available in the buildpack inventory. | ||
| {% endnote %} | ||
|
|
||
| #### Private Modules from SCM (GitHub/GitLab/etc.) | ||
|
|
||
| Your private module should be fetched from the SCM service through SSH. You can specify it this way: | ||
| The stack matters most for native Node.js modules and packages that use operating-system libraries. A stack migration rebuilds the application against a different Ubuntu base and should be tested before production. See [Scalingo Stacks]({% post_url platform/internals/stacks/2000-01-01-stacks %}). |
There was a problem hiding this comment.
I don't think we want to duplicate that kind of information. We have the stack page for this
| - **Explicit buildpack support:** behavior implemented specifically in the buildpack. | ||
| - **Documented compatibility:** a Scalingo-tested deployment recipe. | ||
| - **Generic compatibility:** a framework can run because it produces a normal Node.js application. |
|
|
||
| The buildpack itself does not search nested directories. For monorepos, configure the deployed application root through Scalingo platform features before the Node.js buildpack runs. | ||
|
|
||
| ## Stack used for build and runtime |
There was a problem hiding this comment.
This shouldn't be duplicated here
|
|
||
| Do not store credentials directly in committed configuration. Reference an environment variable instead. | ||
|
|
||
| ## Choose or migrate the Scalingo stack |
There was a problem hiding this comment.
I find this page too detailed. And I think it belongs to the "start" page
There was a problem hiding this comment.
Do we really need a dedicated page for this? It seems too detailed for nothing
This PR permit to show what Chatgpt have generated, for the JS documentation