Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prerequisites: Use system version of Node #1201

Merged
merged 1 commit into from
May 7, 2024

Commits on May 7, 2024

  1. Prerequisites: Use system version of Node

    We were incorrectly assuming consumers had the version of Node installed
    that is declared in `Suspenders::NODE_LTS_VERSION`.
    
    Because of this, we were generating a `.node-version` file with a
    version that was not installed on the user's system. This was a problem
    because when subsequent generators depending on Node where invoked, they
    would raise the following:
    
    ```
    No preset version installed for command node
    Please install a version by running one of the following:
    
    asdf install nodejs 20.11.1
    ```
    
    To account for this, we [borrow][] from Rails, but modify slightly.
    First, we look to see if `ENV["NODE_VERSION"]` is set. If not, we then
    look to see if Node is installed, and set the version via `node
    --version`. If neither of those values are present, we raise. This is
    because we can't use a fallback value, since the consumer does not have
    Node installed on their system.
    
    Removes `Suspenders::NODE_LTS_VERSION` since it's no longer used as a
    fallback.
    
    Introduced [climate_control][] as a development dependency in order to
    test this feature.
    
    [borrow]: https://github.com/rails/rails/blob/d65fec4fd2a047533408cbbd4824b248adc0e3fd/railties/lib/rails/generators/app_base.rb#L521-L529
    [climate_control]: https://github.com/thoughtbot/climate_control
    stevepolitodesign committed May 7, 2024
    Configuration menu
    Copy the full SHA
    db14f14 View commit details
    Browse the repository at this point in the history