Le 12/09/2021 à 18:35, Pirate Praveen a écrit : > On ഞാ, സെപ്റ്റം 12, 2021 at 18:29, Yadd <[email protected]> wrote: >> Hi all, >> >> some recent updates switched from CommonJS to ESM ("type: module"). I >> found a way for node-strip-json-comments which can be applied to most of >> Sindre Sorhus modules: >> >> 1. build a commonjs file: >> >> babeljs -o index.cjs index.js >> perl -i -pe 's/^export default/module.exports =/' index.cjs >> >> 2. adapt package.json: >> >> --- a/package.json >> +++ b/package.json >> @@ -11,7 +11,12 @@ >> "url": "https://sindresorhus.com" >> }, >> "type": "module", >> - "exports": "./index.js", >> + "exports": { >> + "import": "./index.js", >> + "require": "./index.cjs" >> + }, >> + "main": "./index.cjs", >> + "module": "./index.js", >> "engines": { >> "node": "^12.20.0 || ^14.13.1 || >=16.0.0" >> }, >> @@ -20,6 +25,7 @@ >> "bench": "matcha benchmark.js" >> }, >> "files": [ >> + "index.cjs", >> "index.js", >> "index.d.ts" >> ], >> >> For more complex packages, see >> https://www.sensedeep.com/blog/posts/2021/how-to-create-single-source-npm-module.html >> > > I don't think this approach (tryng to support two versions of > everything) is really sustainable, for one or two packages it would be > fine. We should look at it like any breaking major version update and > try to update reverse dependencies to new APIs (switch to import from > require) and only if that is too much work, we should try to support > both versions. > > With nodejs supporting ESM natively, we should try to avoid as much of > build steps as possible.
You're right, but for now this avoid to downgrade updated packages (like node-strip-json-comments which broke eslint) -- Pkg-javascript-devel mailing list [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-javascript-devel
