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

Julian Gilbey jdg at debian.org
Thu Dec 22 19:21:11 GMT 2022


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