gulpjs / fs-mkdirp-stream

Ensure directories exist before writing to them.
MIT License
8 stars 7 forks source link

node.js version support #10

Closed coreyfarrell closed 4 years ago

coreyfarrell commented 4 years ago

This is a follow-up to https://github.com/gulpjs/fs-mkdirp-stream/pull/6#discussion_r422636985 where I pointed out use of a 10.12.0 form of options argument to fs.mkdir. I'm thinking we might want to specify engines.node >=10.12.0 or >=10.13.0 on everything anyways. It is very common in the ecosystem for packages that support node.js 10+ to either require recursive fs.mkdir (10.12.0) or to not support minor releases before LTS (10.13.0).

Supporting 10.0.0 brings little value and will setup a long term conflict with both production and development dependencies. For example eslint 7.0.0 (just released) declares support for node.js ^10.12.0 || >=12.0.0. babel 8 and nyc 16 also will not support node.js 10.0.0 - 10.11.x. These are examples of packages which will explicitly declare non-support for older point releases of 10.x. Many packages will simply declare support for >=10 but only work on >=10.12.0.

phated commented 4 years ago

Ugh! The npm ecosystem makes me really frustrated. I agree with your assessment and will need to update the .boilerplate. I probably won't make the engine bump on my lead project which was the first project I updated to these patterns.

coreyfarrell commented 4 years ago

The specific reason projects require node.js 10.12.0+ is usually recursive fs.mkdir, nobody switched to fs.mkdir(dirname, {mode: mode}, callback). From this the requirement ripples out.