Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit cac6eb8

Browse files
committedNov 13, 2024
feat: enable lib mode tests (#64)
1 parent 92fd544 commit cac6eb8

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
@@ -317,7 +317,7 @@ export interface LibraryOptions {
317317
cssFileName?: string
318318
}
319319

320-
export type LibraryFormats = 'es' | 'cjs' | 'iife' // | 'umd' | 'system'
320+
export type LibraryFormats = 'es' | 'cjs' | 'iife' | 'umd' // | 'system'
321321

322322
export interface ModulePreloadOptions {
323323
/**
@@ -783,7 +783,7 @@ async function buildEnvironment(
783783
? `[name].[ext]`
784784
: path.posix.join(options.assetsDir, `[name]-[hash].[ext]`),
785785
inlineDynamicImports:
786-
/* output.format === 'umd' || */ output.format === 'iife',
786+
output.format === 'umd' || output.format === 'iife',
787787
...output,
788788
}
789789
}
@@ -942,7 +942,7 @@ function resolveOutputJsExtension(
942942
type: string = 'commonjs',
943943
): JsExt {
944944
if (type === 'module') {
945-
return format === 'cjs' /* || format === 'umd' */ ? 'cjs' : 'js'
945+
return format === 'cjs' || format === 'umd' ? 'cjs' : 'js'
946946
} else {
947947
return format === 'es' ? 'mjs' : 'js'
948948
}
@@ -992,10 +992,10 @@ export function resolveBuildOutputs(
992992
Object.values(libOptions.entry).length > 1
993993
const libFormats =
994994
libOptions.formats ||
995-
(libHasMultipleEntries ? ['es', 'cjs'] : ['es' /* , 'umd' */])
995+
(libHasMultipleEntries ? ['es', 'cjs'] : ['es', 'umd'])
996996

997997
if (!Array.isArray(outputs)) {
998-
if (/* libFormats.includes('umd') || */ libFormats.includes('iife')) {
998+
if (libFormats.includes('umd') || libFormats.includes('iife')) {
999999
if (libHasMultipleEntries) {
10001000
throw new Error(
10011001
'Multiple entry points are not supported when output formats include "umd" or "iife".',
@@ -1023,7 +1023,7 @@ export function resolveBuildOutputs(
10231023

10241024
outputs.forEach((output) => {
10251025
if (
1026-
/* output.format === 'umd' || */ output.format === 'iife' &&
1026+
(output.format === 'umd' || output.format === 'iife') &&
10271027
!output.name
10281028
) {
10291029
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)