Coder Social home page Coder Social logo

Comments (6)

bcherny avatar bcherny commented on July 3, 2024

Also how does "engines" being "node": ">=12.0.0" while having node types as "@types/node": "^17.0.33" work?

@types/node doesn't have official up-to-date typings for Node 12, so we use newer Node types and run on Node 12 as part of CI to make sure tests pass on Node 12.

from json-schema-to-typescript.

GabenGar avatar GabenGar commented on July 3, 2024

The question still stands, since npm has 3 different versions of lockfile, so it has to be removed from .gitignore and committed to the repo.
Assuming the nodejs npm mapping is the source of truth for supported version pairs, node 12 peaked at npm 6 (and therefore at lockfile version 1), which is quite a requirement for the developer machine. It basically assumes the person forking the repo knows how to juggle multiple versions of node and npm in a multiplatform context.
Is it really important to support a version of node 3 versions below the current Maintenance LTS (18)? What would be the price of releasing a semver major which ups the required NodeJS version to 18 (Maintenance LTS) or 20 (Active LTS)?

from json-schema-to-typescript.

bcherny avatar bcherny commented on July 3, 2024

Is this causing a specific issue for you? If so, please feel free to elaborate.

from json-schema-to-typescript.

GabenGar avatar GabenGar commented on July 3, 2024

The specific issue is writing nodejs code using node 17 types but for node 12 target. It is quite a jump: ESM support, a lot of fs-related interfaces got slightly changed and even fs/promises was added, better ECMAScript support (i.e. Array.at(), nullish coalescing, optional chaining). It even has a built-in args parser now.
As for npm, the lock file is required to have reproducible builds, more so on later versions which don't seem to be as relaxed as older ones and so don't change the lock file on bare install command (even if dependencies allow for minor/patch version up), unless it's some platform-specific dependencies missing. And the version of npm is tied to a version of nodejs anyway.

from json-schema-to-typescript.

GabenGar avatar GabenGar commented on July 3, 2024

I've looked into the repo further and there is .nvmrc file, which is a config file for nvm. And it says nvm should switch to node 16. So there is another source of truth claiming the required version of node. Which is different from the other two.

EDIT: Also yarn is used in a CI file, and there is a .yarn/releases folder with a file which constitutes a 1/3rd of the source code size.

from json-schema-to-typescript.

GabenGar avatar GabenGar commented on July 3, 2024

The fork of json-schema-ref-parser, which is a dependency of this repo, has "engines": {"node": ">= 16"} within its package.json, so it's another source of NodeJS which conflicts with other metadata except for .nvmrc.

from json-schema-to-typescript.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.