Snivilization / nodejs-esm-starter

Starter project for NodeJs esm packages, with rollup, typescript, mocha, chai, eslint, istanbul/nyc, gulp and i18next
MIT License
6 stars 3 forks source link

Part 5: Dual-mode libraries #5

Closed plastikfan closed 3 years ago

plastikfan commented 3 years ago

Dual-mode libraries Implement Part 5

plastikfan commented 3 years ago

NB: the build task manually copies the non js file text.txt asset. But really this is what we need gulp for (see gulp-better-rollup and gulp-rollup-2)

plastikfan commented 3 years ago

run into a major issue running rollup:

 ✘ plastikfan@Janus  ~/dev/github/snivilization/nodejs-esm-starter λ   chore/part-05-dual-mode ±  npx rollup -c

src/add.js, src/banner-in-colour.js, src/main.js → lib...
(!) Unresolved dependencies
https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
fs (imported by src/banner-in-colour.js)
url (imported by src/banner-in-colour.js)
path (imported by src/banner-in-colour.js)
[!] Error: Module format cjs does not support top-level await. Use the "es" or "system" output formats rather.
Error: Module format cjs does not support top-level await. Use the "es" or "system" output formats rather.
    at error (/home/plastikfan/dev/github/snivilization/nodejs-esm-starter/node_modules/rollup/dist/shared/rollup.js:158:30)
    at Chunk.render (/home/plastikfan/dev/github/snivilization/nodejs-esm-starter/node_modules/rollup/dist/shared/rollup.js:14768:20)
    at /home/plastikfan/dev/github/snivilization/nodejs-esm-starter/node_modules/rollup/dist/shared/rollup.js:15938:52
    at Array.map (<anonymous>)
    at Bundle.addFinalizedChunksToBundle (/home/plastikfan/dev/github/snivilization/nodejs-esm-starter/node_modules/rollup/dist/shared/rollup.js:15936:34)
    at Bundle.generate (/home/plastikfan/dev/github/snivilization/nodejs-esm-starter/node_modules/rollup/dist/shared/rollup.js:15916:24)
    at async handleGenerateWrite (/home/plastikfan/dev/github/snivilization/nodejs-esm-starter/node_modules/rollup/dist/shared/rollup.js:23400:23)
    at async Promise.all (index 0)
    at async build (/home/plastikfan/dev/github/snivilization/nodejs-esm-starter/node_modules/rollup/dist/bin/rollup:1576:5)
    at async runRollup (/home/plastikfan/dev/github/snivilization/nodejs-esm-starter/node_modules/rollup/dist/bin/rollup:1730:21)

 ✘ plastikfan@Janus  ~/dev/github/snivilization/nodejs-esm-starter λ   chore/part-05-dual-mode ± 
plastikfan commented 3 years ago

This was fixed by removing the async on this line in banner-in-colour.js:

const text = await fs.readFile(join(__dirname, 'text.txt'), 'utf8');