Skip to content

Commit 665f619

Browse files
committed
feat: enable lib mode tests (#64)
1 parent 51ebefe commit 665f619

File tree

5 files changed

+21
-23
lines changed

5 files changed

+21
-23
lines changed

packages/vite/src/node/__tests__/build.spec.ts

+10-10
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,9 @@ describe('resolveBuildOutputs', () => {
182182
{
183183
format: 'es',
184184
},
185-
// {
186-
// format: 'umd',
187-
// },
185+
{
186+
format: 'umd',
187+
},
188188
])
189189
})
190190

@@ -223,7 +223,7 @@ describe('resolveBuildOutputs', () => {
223223
expect(resolveBuild).toThrowError(/Option "build\.lib\.name" is required/)
224224
})
225225

226-
test.skip('throws an error when lib.name is missing on umd format', () => {
226+
test('throws an error when lib.name is missing on umd format', () => {
227227
const logger = createLogger()
228228
const libOptions: LibraryOptions = { ...baseLibOptions, formats: ['umd'] }
229229
const resolveBuild = () => resolveBuildOutputs(void 0, libOptions, logger)
@@ -242,7 +242,7 @@ describe('resolveBuildOutputs', () => {
242242
)
243243
})
244244

245-
test.skip('throws an error when output.name is missing on umd format', () => {
245+
test('throws an error when output.name is missing on umd format', () => {
246246
const logger = createLogger()
247247
const libOptions: LibraryOptions = { ...baseLibOptions }
248248
const outputs: OutputOptions[] = [{ format: 'umd' }]
@@ -346,7 +346,7 @@ describe('resolveLibFilename', () => {
346346
test('module package extensions', () => {
347347
const formatsToFilenames: FormatsToFileNames = [
348348
['es', 'my-lib.js'],
349-
// ['umd', 'my-lib.umd.cjs'],
349+
['umd', 'my-lib.umd.cjs'],
350350
['cjs', 'my-lib.cjs'],
351351
['iife', 'my-lib.iife.js'],
352352
]
@@ -496,13 +496,13 @@ describe('resolveBuildOutputs', () => {
496496

497497
expect(resolveBuildOutputs(undefined, libOptions, {} as Logger)).toEqual([
498498
{ format: 'es' },
499-
// { format: 'umd' },
499+
{ format: 'umd' },
500500
])
501501
expect(
502502
resolveBuildOutputs({ name: 'A' }, libOptions, {} as Logger),
503503
).toEqual([
504504
{ format: 'es', name: 'A' },
505-
// { format: 'umd', name: 'A' },
505+
{ format: 'umd', name: 'A' },
506506
])
507507
expect(
508508
resolveBuildOutputs([{ name: 'A' }], libOptions, {} as Logger),
@@ -529,7 +529,7 @@ describe('resolveBuildOutputs', () => {
529529
).toEqual([{ name: 'A' }])
530530
})
531531

532-
test.skip('umd or iife: should not support multiple entries', () => {
532+
test('umd or iife: should not support multiple entries', () => {
533533
;['umd', 'iife'].forEach((format) => {
534534
expect(() =>
535535
resolveBuildOutputs(
@@ -546,7 +546,7 @@ describe('resolveBuildOutputs', () => {
546546
})
547547
})
548548

549-
test.skip('umd or iife: should define build.lib.name', () => {
549+
test('umd or iife: should define build.lib.name', () => {
550550
;['umd', 'iife'].forEach((format) => {
551551
expect(() =>
552552
resolveBuildOutputs(

packages/vite/src/node/build.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ export interface LibraryOptions {
314314
cssFileName?: string
315315
}
316316

317-
export type LibraryFormats = 'es' | 'cjs' | 'iife' // | 'umd' | 'system'
317+
export type LibraryFormats = 'es' | 'cjs' | 'iife' | 'umd' // | 'system'
318318

319319
export interface ModulePreloadOptions {
320320
/**
@@ -773,7 +773,7 @@ async function buildEnvironment(
773773
? `[name].[ext]`
774774
: path.posix.join(options.assetsDir, `[name]-[hash].[ext]`),
775775
inlineDynamicImports:
776-
/* output.format === 'umd' || */ output.format === 'iife',
776+
output.format === 'umd' || output.format === 'iife',
777777
...output,
778778
}
779779
}
@@ -931,7 +931,7 @@ function resolveOutputJsExtension(
931931
type: string = 'commonjs',
932932
): JsExt {
933933
if (type === 'module') {
934-
return format === 'cjs' /* || format === 'umd' */ ? 'cjs' : 'js'
934+
return format === 'cjs' || format === 'umd' ? 'cjs' : 'js'
935935
} else {
936936
return format === 'es' ? 'mjs' : 'js'
937937
}
@@ -981,10 +981,10 @@ export function resolveBuildOutputs(
981981
Object.values(libOptions.entry).length > 1
982982
const libFormats =
983983
libOptions.formats ||
984-
(libHasMultipleEntries ? ['es', 'cjs'] : ['es' /* , 'umd' */])
984+
(libHasMultipleEntries ? ['es', 'cjs'] : ['es', 'umd'])
985985

986986
if (!Array.isArray(outputs)) {
987-
if (/* libFormats.includes('umd') || */ libFormats.includes('iife')) {
987+
if (libFormats.includes('umd') || libFormats.includes('iife')) {
988988
if (libHasMultipleEntries) {
989989
throw new Error(
990990
'Multiple entry points are not supported when output formats include "umd" or "iife".',
@@ -1012,7 +1012,7 @@ export function resolveBuildOutputs(
10121012

10131013
outputs.forEach((output) => {
10141014
if (
1015-
/* output.format === 'umd' || */ output.format === 'iife' &&
1015+
(output.format === 'umd' || output.format === 'iife') &&
10161016
!output.name
10171017
) {
10181018
throw new Error(

packages/vite/src/node/packages.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -272,15 +272,14 @@ export function watchPackageDataPlugin(packageCache: PackageCache): Plugin {
272272
return {
273273
name: 'vite:watch-package-data',
274274
buildStart() {
275-
// watchFile = this.addWatchFile.bind(this)
275+
watchFile = this.addWatchFile.bind(this)
276276
watchQueue.forEach(watchFile)
277277
watchQueue.clear()
278278
},
279279
buildEnd() {
280280
watchFile = watchFileStub
281281
},
282-
// TODO: use watchChange hook when implemented
283-
handleHotUpdate({ file: id }) {
282+
watchChange(id) {
284283
if (id.endsWith('/package.json')) {
285284
invalidatePackageData(packageCache, path.normalize(id))
286285
}

packages/vite/src/node/plugins/esbuild.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -356,9 +356,9 @@ export const buildEsbuildPlugin = (config: ResolvedConfig): Plugin => {
356356
const contentIndex =
357357
opts.format === 'iife'
358358
? Math.max(esbuildCode.search(IIFE_BEGIN_RE), 0)
359-
: // : opts.format === 'umd'
360-
// ? esbuildCode.indexOf(`(function(`) // same for minified or not
361-
0
359+
: opts.format === 'umd'
360+
? esbuildCode.indexOf(`(function(`) // same for minified or not
361+
: 0
362362
if (contentIndex > 0) {
363363
const esbuildHelpers = esbuildCode.slice(0, contentIndex)
364364
res.code = esbuildCode

vitest.config.e2e.ts

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ export default defineConfig({
2020
'./playground/environment-react-ssr/**/*.spec.[tj]s', // needs investigation
2121
'./playground/dynamic-import/**/*.spec.[tj]s', // https://github.com/rolldown/rolldown/issues/1843
2222
'./playground/external/**/*.spec.[tj]s', // https://github.com/rolldown/rolldown/issues/2041
23-
'./playground/lib/**/*.spec.[tj]s', // umd format
2423
'./playground/object-hooks/**/*.spec.[tj]s', // object hook sequential
2524
'./playground/optimize-deps/**/*.spec.[tj]s', // https://github.com/rolldown/rolldown/issues/2031
2625
'./playground/tsconfig-json/__tests__/**/*.spec.[tj]s', // decorators is not supported by oxc

0 commit comments

Comments
 (0)