[Pkg-javascript-devel] The (long) way to update rollup

Pirate Praveen praveen at onenetbeyond.org
Wed Jul 24 10:15:41 BST 2019



On 2019, ജൂലൈ 24 2:29:07 PM IST, Pirate Praveen <praveen at onenetbeyond.org> wrote:
>
>
>On 2019, ജൂലൈ 24 1:34:06 PM IST, Pirate Praveen
><praveen at onenetbeyond.org> wrote:
>>
>>
>>On 2019, ജൂലൈ 24 4:22:28 AM IST, Xavier <yadd at debian.org> wrote:
>>>Final results:
>>>
>>>0.50.0 can build until 0.53.3
>>>0.51.7 can build until 0.56.3
>>>0.56.1 can build until 0.65.2
>>>0.58.1 can build until 0.67.2
>>>0.59.1 can build until 1.12.0
>>>1.12.0 can build until 1.17.0
>>>
>>>So 6 steps needed (4 breaking changes), at least 4 to update
>>node-buble
>>>(2 little breaking changes)
>>
>>Last time we broke the loop by manually converting ES module to
>>Commonjs with a patch. We could go straight to 1.17 if we follow this
>>approach as it does not involve any build.
>>
>>https://salsa.debian.org/js-team/node-rollup/blob/4fecc91f85423688acdc6d7342fe2f15c2404599/debian/patches/cjs.diff
>>
>>Alternative approach is to use type: module in package.json and the
>>node --experimental-modules  to build rollup 1.17 with itself or just
>>patch bin/rollup to add --experimental-modules  in shebang line.
>>
>
>It does not work with nodejs in unstable, but with nodejs in
>experimental.
>
>$ node --experimental-modules bin/src/index.js           (node:32753)
>ExperimentalWarning: The ESM module loader is experimental.            
>internal/modules/esm/default_resolve.js:69        let url =
>moduleWrapResolve(specifier, parentURL);                               
>^                                                                      
>Error: Cannot find package 'minimist' imported from
>/home/praveen/forge/node-rollup/bin/src/index.js                       
>at Loader.resolve [as _resolve]
>(internal/modules/esm/default_resolve.js:69:13)                 at
>Loader.resolve (internal/modules/esm/loader.js:70:33)                  
>at Loader.getModuleJob (internal/modules/esm/loader.js:143:40)         
>at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:43:40)   
>                     at link (internal/modules/esm/module_job.js:42:36)
>
>This means we will have to convert all dependencies as ES modules as
>well.

After changing import to 

const minimist = module.create require('minimist');

As per https://nodejs.org/api/esm.html#esm_code_require_code

$ node --experimental-modules bin/src/index.js           (node:324) ExperimentalWarning: The ESM module loader is experimental.                          internal/modules/cjs/loader.js:817                    internalBinding('task_queue').triggerFatalException(
                                    ^                                                           Error [ERR_INTERNAL_ASSERTION]: Code: ERR_UNKNOWN_FILE_EXTENSION; The provided arguments length (2) does not match the required ones (1).       This is caused by either a bug in Node.js or incorrect usage of Node.js internals.
Please open an issue with this stack trace at https://github.com/nodejs/node/issues

    at assert (internal/assert.js:13:11)
    at getMessage (internal/errors.js:284:3)
    at new NodeError (internal/errors.js:177:23)
    at Loader.resolve [as _resolve] (internal/modules/esm/default_resolve.js:101:13)
    at Loader.resolve (internal/modules/esm/loader.js:70:33)
    at Loader.getModuleJob (internal/modules/esm/loader.js:143:40)
    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:43:40)
    at link (internal/modules/esm/module_job.js:42:36)

This is the diff to node-rollup master,

diff --git a/bin/src/index.js b/bin/src/index.js
index 8024961f..a826c72e 100644                 --- a/bin/src/index.js                          +++ b/bin/src/index.js                          @@ -1,4 +1,5 @@                                 -import minimist from 'minimist';               +//import minimist from 'minimist';             +const minimist = module.createRequire('minimist');
 import help from './help.md';
 import { version } from '../../package.json';
 import run from './run/index.js';
diff --git a/package.json b/package.json
index 7f9777b1..024c4e0a 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,7 @@
   "main": "dist/rollup.js",
   "module": "dist/rollup.es.js",
   "jsnext:main": "dist/rollup.es.js",
+  "type": "module",
   "bin": {
     "rollup": "./bin/rollup"
   },

I think this would be the best approach if we can fix this error.
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.



More information about the Pkg-javascript-devel mailing list