我按照文档中的打字稿吞咽:https : //rollupjs.org/guide/en#gulp
这是我的 gulp 文件:
const gulp = require("gulp");
const rollup = require("rollup");
const rollupTypescript = require("rollup-plugin-typescript");
gulp.task("build", () => {
return rollup
.rollup({
input: "./main.ts",
plugins: [rollupTypescript()]
})
.then(bundle => {
return bundle.write({
file: "./main.js",
format: "umd",
name: "library",
sourcemap: true
});
});
});
Run Code Online (Sandbox Code Playgroud)
Error: Cannot find module 'tslib/tslib.es6.js' from 'C:\projets\Tests\rollup\node_modules\rollup-plugin-typescript\dist'
at Function.module.exports [as sync] (C:\projets\Tests\rollup\node_modules\resolve\lib\sync.js:58:15)
at typescript (C:\projets\Tests\rollup\node_modules\rollup-plugin-typescript\dist\rollup-plugin-typescript.cjs.js:109:29)
at gulp.task (C:\projets\Tests\rollup\gulpfile.js:9:17)
at taskWrapper (C:\projets\Tests\rollup\node_modules\undertaker\lib\set-task.js:13:15)
at bound (domain.js:301:14)
at runBound (domain.js:314:12)
at asyncRunner (C:\projets\Tests\rollup\node_modules\async-done\index.js:55:18)
at _combinedTickCallback (internal/process/next_tick.js:131:7) …Run Code Online (Sandbox Code Playgroud) 当两者看起来完全相同时,Jest 会认为这不完全相同吗?
所以这是我用来进行测试的代码,它基本上只是一个调用事件发射器的函数,在事件发射器中,如果日期无效,我会按原样设置:
const datepickerComponent: Datepicker = new Datepicker();
const mockEvent = {
target: {
classList: {
remove: jest.fn(),
add: jest.fn(),
},
value: '01-01-197',
},
} as unknown as InputEvent;
datepickerComponent.onInput(mockEvent);
const emitMock: jest.Mock = jest.fn();
datepickerComponent.dsdDatepickerInputChange = { emit: emitMock } as unknown as EventEmitter<dsdDatepickerInputChangeEvent>;
// when
datepickerComponent.onInput(mockEvent);
const dateValue = new Date('197-01-01T00:00:00');
// then
expect(emitMock).toHaveBeenCalledWith({ value: '197-01-01', valueAsDate: dateValue });
Run Code Online (Sandbox Code Playgroud)