[Pkg-javascript-devel] Help with node-webfont packaging: rollup looks at test files

Julian Gilbey jdg at debian.org
Fri Dec 23 08:06:20 GMT 2022


Hi Israel,

Amazing, thank you!  I'll include those patches in the main version.

Best wishes,

   Julian

On Fri, Dec 23, 2022 at 01:06:44AM +0100, Israel Galadima wrote:
> Hi Julian,
> For the first set of errors, you need to exclude all test files from rollup.
> Then for the second, you need to change globby to a named export.
> I've added the relevant commits to my fork on Salsa here.
> 
> Regards.
> On Thu, 22 Dec 2022 at 20:21, Julian Gilbey <jdg at debian.org> wrote:
> 
>   I'm wondering if anyone has an idea about this.  I've been working on
>   packaging node-webfont (my current work is on salsa:
>   https://salsa.debian.org/js-team/node-webfont).  It now builds, but
>   there is some really weird behaviour during the build.
> 
>   It builds the components that need building, then comes to the main
>   module and calls rollup:
> 
>   ---
>   Found debian/nodejs/./build
>           cd ./. && sh -ex debian/nodejs/./build
>   + rollup -c
>   ---
> 
>   but immediately runs into trouble:
> 
>   ---
>   src/cli/index.ts → dist/cli.js...
>   (!) Plugin typescript: @rollup/plugin-typescript TS2307: Cannot find module
>   'tsd' or its corresponding type declarations.
>   is-svg/index.test-d.ts: (1:26)
> 
>   1 import {expectType} from 'tsd';
>                              ~~~~~
>   ---
> 
>   I don't know why it's looking at is-svg (one of the components); it
>   shouldn't be touching it.  And even if rollup has to look at it, why
>   is it looking at one of the test files?  It then hits another is-svg
>   error, followed by lots of webfont errors, starting with:
> 
>   ---
>   (!) Plugin typescript: @rollup/plugin-typescript TS2304: Cannot find name
>   'jest'.
>   src/cli/index.test.ts: (8:1)
> 
>   8 jest.mock("./meow");
>     ~~~~
> 
>   (!) Plugin typescript: @rollup/plugin-typescript TS2582: Cannot find name
>   'describe'. Do you need to install type definitions for a test runner? Try
>   `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`.
>   src/cli/index.test.ts: (15:1)
> 
>   15 describe("cli", () => {
>      ~~~~~~~~
> 
>   [...]
> 
>   (!) Plugin typescript: @rollup/plugin-typescript TS2304: Cannot find name
>   'beforeAll'.
>   src/cli/index.test.ts: (17:3)
> 
>   17   beforeAll(() => new Promise((resolve, reject) => {
>        ~~~~~~~~~
> 
>   (!) Plugin typescript: @rollup/plugin-typescript TS2304: Cannot find name
>   'beforeEach'.
>   src/cli/index.test.ts: (34:3)
> 
>   34   beforeEach(() => new Promise((resolve, reject) => {
>        ~~~~~~~~~~
> 
>   (!) Plugin typescript: @rollup/plugin-typescript TS2582: Cannot find name
>   'it'. Do you need to install type definitions for a test runner? Try `npm i
>   --save-dev @types/jest` or `npm i --save-dev @types/mocha`.
>   src/cli/index.test.ts: (60:3)
> 
>   60   it("exits with code 2 and displays --help if no argument parameters are
>   passed", async () => {
>        ~~
> 
>   [...]
> 
>   (!) Plugin typescript: @rollup/plugin-typescript TS2304: Cannot find name
>   'expect'.
>   src/cli/index.test.ts: (64:5)
> 
>   64     expect(output.code).toBe(2);
>          ~~~~~~
>   ---
> 
>   Installing the jest package made no difference to this error, and
>   again, I don't understand why it is looking at test files.
> 
>   There was then another, apparently unrelated, error:
> 
>   ---
>   (!) Plugin typescript: @rollup/plugin-typescript TS2349: This expression is
>   not callable.
>     Type 'typeof import("/usr/share/nodejs/globby/index")' has no call
>   signatures.
>   src/standalone/index.ts: (121:28)
> 
>   121   const foundFiles = await globby([].concat(options.files));
>                                  ~~~~~~
>   ---
> 
>   Any hints or suggestions would be very welcome here!
> 
>   (There is also an unrelated issue: one of the included components is
>   wawoff2, and that is not in source format.  Figuring out how to fix
>   that looks like a reasonably big job :( )
> 
>   Best wishes,
> 
>      Julian



More information about the Pkg-javascript-devel mailing list