Files
JJ KasperandGitHub 121bd6a199 Ensure we match comment minify behavior between terser and swc (#68372)
Currently we are only strip all comments properly when `swcMinify:
false` is set although the default is to use `swcMinify` which can cause
confusion with these two modes not matching comments handling.

This updates the default to match comment stripping between the two and
also adds an experimental config to allow toggling this regardless of
which minifier is being used.

x-ref: [slack
thread](https://vercel.slack.com/archives/C0676QZBWKS/p1722444791037279)
x-ref: NEXT-3642
2024-08-01 15:30:53 +09:00

39 lines
997 B
TypeScript

import glob from 'glob'
import { nextTestSetup } from 'e2e-utils'
import path from 'path'
describe('terser-class-static-blocks', () => {
const { next, isNextDeploy } = nextTestSetup({
files: __dirname,
nextConfig: {},
})
it('should work using cheerio', async () => {
const $ = await next.render$('/')
expect($('p').text()).toBe('hello world')
})
if (!isNextDeploy) {
it('should have stripped away all comments', async () => {
const chunksDir = path.join(next.testDir, '.next/static')
const chunks = glob.sync('**/*.js', {
cwd: chunksDir,
})
expect(chunks.length).toBeGreaterThan(0)
await Promise.all(
chunks.map(async (chunk) => {
expect(
await next.readFile(path.join('.next/static', chunk))
).not.toContain('/*')
expect(
await next.readFile(path.join('.next/static', chunk))
).not.toContain('My JSDoc comment that')
})
)
})
}
})