Я создал библиотеку mylib
, которая скомпилирована со следующим разделом веб-пакета:
output: {
...
library: 'mylib',
libraryTarget: "var",
libraryExport: 'default',
},
, чтобы его можно было включить в тег сценария и использовать напрямую, например:
<script src="mylib.js"></script>
<script>
mylib.foo(); // the name mylib is available
</script>
В новом приложении я хотел бы построить на mylib
(./src/point.js
):
export class Point extends mylib.Widget {
constructor(x, y) {
super();
this.x = x;
this.y = y;
}
}
и использовать jest
для написания модульных тестов (./src/__tests__/test-point.js
):
import {Point} from "../point";
test("test-point", () => {
const p = new Point(5, 10);
expect(p.x).toBe(5);
expect(p.y).toBe(10);
});
конечно jest
жалуется, что не знает, что такое mylib
:
(dev) go|c:\srv\lib\dkface> jest
FAIL src/__tests__/test-point.js
● Test suite failed to run
ReferenceError: mylib is not defined
1 |
> 2 | export class Point extends mylib.Widget {
| ^
3 | constructor(x, y) {
4 | super();
5 | this.x = x;
at Object.mylib (src/point.js:2:28)
at Object.<anonymous> (src/__tests__/test-point.js:2:1)
Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 4.313s
Ran all test suites.
Я немного ошеломлен конфигурациями webpack / babel / jest и этимЯ только второй раз использую Jest (первый был на mylib
, где он отлично работает). Как мне заставить это работать?