Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Revert "edge-ssr: bundle next/dist as ESM for better tree-shaking (ve…
Browse files Browse the repository at this point in the history
…rcel#40251)"

This reverts commit 11deaaa.

# Conflicts:
#	packages/next/build/webpack-config.ts
ijjk committed Sep 27, 2022

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent 0f41a48 commit 4bd4617
Showing 26 changed files with 52 additions and 270 deletions.
5 changes: 1 addition & 4 deletions packages/next/amp.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/shared/lib/amp')
: require('./dist/shared/lib/amp')
module.exports = require('./dist/shared/lib/amp')
5 changes: 1 addition & 4 deletions packages/next/app.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/pages/_app')
: require('./dist/pages/_app')
module.exports = require('./dist/pages/_app')
3 changes: 0 additions & 3 deletions packages/next/build/entries.ts
Original file line number Diff line number Diff line change
@@ -219,7 +219,6 @@ export function getAppEntry(opts: {
appDir: string
appPaths: string[] | null
pageExtensions: string[]
nextRuntime: string
}) {
return {
import: `next-app-loader?${stringify(opts)}!`,
@@ -456,7 +455,6 @@ export async function createEntrypoints(params: CreateEntrypointsParams) {
appDir,
appPaths: matchedAppPaths,
pageExtensions,
nextRuntime: 'nodejs',
})
} else if (isTargetLikeServerless(target)) {
if (page !== '/_app' && page !== '/_document') {
@@ -481,7 +479,6 @@ export async function createEntrypoints(params: CreateEntrypointsParams) {
appDir: appDir!,
appPaths: matchedAppPaths,
pageExtensions,
nextRuntime: 'edge',
}).import
}

18 changes: 8 additions & 10 deletions packages/next/build/webpack-config.ts
Original file line number Diff line number Diff line change
@@ -180,9 +180,11 @@ export function getDefineEnv({
}),
// TODO: enforce `NODE_ENV` on `process.env`, and add a test:
'process.env.NODE_ENV': JSON.stringify(dev ? 'development' : 'production'),
'process.env.NEXT_RUNTIME': JSON.stringify(
isEdgeServer ? 'edge' : isNodeServer ? 'nodejs' : undefined
),
...((isNodeServer || isEdgeServer) && {
'process.env.NEXT_RUNTIME': JSON.stringify(
isEdgeServer ? 'edge' : 'nodejs'
),
}),
'process.env.__NEXT_MIDDLEWARE_MATCHERS': JSON.stringify(
middlewareMatchers || []
),
@@ -793,7 +795,7 @@ export default async function getBaseWebpackConfig(
return prev
}, [] as string[])
: []),
isEdgeServer ? 'next/dist/esm/pages/_app.js' : 'next/dist/pages/_app.js',
'next/dist/pages/_app.js',
]
customAppAliases[`${PAGES_DIR_ALIAS}/_error`] = [
...(pagesDir
@@ -802,9 +804,7 @@ export default async function getBaseWebpackConfig(
return prev
}, [] as string[])
: []),
isEdgeServer
? 'next/dist/esm/pages/_error.js'
: 'next/dist/pages/_error.js',
'next/dist/pages/_error.js',
]
customDocumentAliases[`${PAGES_DIR_ALIAS}/_document`] = [
...(pagesDir
@@ -813,9 +813,7 @@ export default async function getBaseWebpackConfig(
return prev
}, [] as string[])
: []),
isEdgeServer
? `next/dist/esm/pages/_document.js`
: `next/dist/pages/_document.js`,
`next/dist/pages/_document.js`,
]
}

18 changes: 8 additions & 10 deletions packages/next/build/webpack/loaders/next-app-loader.ts
Original file line number Diff line number Diff line change
@@ -120,9 +120,8 @@ const nextAppLoader: webpack.LoaderDefinitionFunction<{
appDir: string
appPaths: string[] | null
pageExtensions: string[]
nextRuntime: string
}> = async function nextAppLoader() {
const { name, appDir, appPaths, pagePath, pageExtensions, nextRuntime } =
const { name, appDir, appPaths, pagePath, pageExtensions } =
this.getOptions() || {}

const buildInfo = getModuleBuildInfo((this as any)._module)
@@ -180,24 +179,23 @@ const nextAppLoader: webpack.LoaderDefinitionFunction<{
resolveParallelSegments,
})

const rootDistFolder = nextRuntime === 'edge' ? 'next/dist/esm' : 'next/dist'
const result = `
export ${treeCode}
export const AppRouter = require('${rootDistFolder}/client/components/app-router.client.js').default
export const LayoutRouter = require('${rootDistFolder}/client/components/layout-router.client.js').default
export const RenderFromTemplateContext = require('${rootDistFolder}/client/components/render-from-template-context.client.js').default
export const AppRouter = require('next/dist/client/components/app-router.client.js').default
export const LayoutRouter = require('next/dist/client/components/layout-router.client.js').default
export const RenderFromTemplateContext = require('next/dist/client/components/render-from-template-context.client.js').default
export const HotReloader = ${
// Disable HotReloader component in production
this.mode === 'development'
? `require('${rootDistFolder}/client/components/hot-reloader.client.js').default`
? `require('next/dist/client/components/hot-reloader.client.js').default`
: 'null'
}
export const staticGenerationAsyncStorage = require('${rootDistFolder}/client/components/static-generation-async-storage.js').staticGenerationAsyncStorage
export const requestAsyncStorage = require('${rootDistFolder}/client/components/request-async-storage.js').requestAsyncStorage
export const staticGenerationAsyncStorage = require('next/dist/client/components/static-generation-async-storage.js').staticGenerationAsyncStorage
export const requestAsyncStorage = require('next/dist/client/components/request-async-storage.js').requestAsyncStorage
export const serverHooks = require('${rootDistFolder}/client/components/hooks-server-context.js')
export const serverHooks = require('next/dist/client/components/hooks-server-context.js')
export const renderToReadableStream = require('next/dist/compiled/react-server-dom-webpack/writer.browser.server').renderToReadableStream
export const __next_app_webpack_require__ = __webpack_require__
35 changes: 7 additions & 28 deletions packages/next/build/webpack/loaders/next-edge-ssr-loader/index.ts
Original file line number Diff line number Diff line change
@@ -18,18 +18,6 @@ export type EdgeSSRLoaderQuery = {
hasFontLoaders: boolean
}

/*
For pages SSR'd at the edge, we bundle them with the ESM version of Next in order to
benefit from the better tree-shaking and thus, smaller bundle sizes.
The absolute paths for _app, _error and _document, used in this loader, link to the regular CJS modules.
They are generated in `createPagesMapping` where we don't have access to `isEdgeRuntime`,
so we have to do it here. It's not that bad because it keeps all references to ESM modules magic in this place.
*/
function swapDistFolderWithEsmDistFolder(path: string) {
return path.replace('next/dist/pages', 'next/dist/esm/pages')
}

export default async function edgeSSRLoader(this: any) {
const {
dev,
@@ -66,18 +54,9 @@ export default async function edgeSSRLoader(this: any) {
}

const stringifiedPagePath = stringifyRequest(this, absolutePagePath)
const stringifiedAppPath = stringifyRequest(
this,
swapDistFolderWithEsmDistFolder(absoluteAppPath)
)
const stringifiedErrorPath = stringifyRequest(
this,
swapDistFolderWithEsmDistFolder(absoluteErrorPath)
)
const stringifiedDocumentPath = stringifyRequest(
this,
swapDistFolderWithEsmDistFolder(absoluteDocumentPath)
)
const stringifiedAppPath = stringifyRequest(this, absoluteAppPath)
const stringifiedErrorPath = stringifyRequest(this, absoluteErrorPath)
const stringifiedDocumentPath = stringifyRequest(this, absoluteDocumentPath)
const stringified500Path = absolute500Path
? stringifyRequest(this, absolute500Path)
: null
@@ -88,8 +67,8 @@ export default async function edgeSSRLoader(this: any) {
)}`

const transformed = `
import { adapter, enhanceGlobals } from 'next/dist/esm/server/web/adapter'
import { getRender } from 'next/dist/esm/build/webpack/loaders/next-edge-ssr-loader/render'
import { adapter, enhanceGlobals } from 'next/dist/server/web/adapter'
import { getRender } from 'next/dist/build/webpack/loaders/next-edge-ssr-loader/render'
enhanceGlobals()
@@ -98,7 +77,7 @@ export default async function edgeSSRLoader(this: any) {
isAppDir
? `
const Document = null
const appRenderToHTML = require('next/dist/esm/server/app-render').renderToHTMLOrFlight
const appRenderToHTML = require('next/dist/server/app-render').renderToHTMLOrFlight
const pagesRenderToHTML = null
const pageMod = require(${JSON.stringify(pageModPath)})
const appMod = null
@@ -108,7 +87,7 @@ export default async function edgeSSRLoader(this: any) {
: `
const Document = require(${stringifiedDocumentPath}).default
const appRenderToHTML = null
const pagesRenderToHTML = require('next/dist/esm/server/render').renderToHTML
const pagesRenderToHTML = require('next/dist/server/render').renderToHTML
const pageMod = require(${stringifiedPagePath})
const appMod = require(${stringifiedAppPath})
const errorMod = require(${stringifiedErrorPath})
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import type { NextConfig } from '../../../../server/config-shared'

import type { DocumentType, AppType } from '../../../../shared/lib/utils'
import type { BuildManifest } from '../../../../server/get-page-files'
import type { ReactLoadableManifest } from '../../../../server/load-components'
16 changes: 3 additions & 13 deletions packages/next/build/webpack/plugins/flight-client-entry-plugin.ts
Original file line number Diff line number Diff line change
@@ -307,19 +307,9 @@ export class FlightClientEntryPlugin {
modules: clientComponentImports,
server: false,
}

// For the client entry, we always use the CJS build of Next.js. If the
// server is using the ESM build (when using the Edge runtime), we need to
// replace them.
const clientLoader = `next-flight-client-entry-loader?${stringify({
modules: this.isEdgeServer
? clientComponentImports.map((importPath) =>
importPath.replace('next/dist/esm/', 'next/dist/')
)
: clientComponentImports,
server: false,
})}!`

const clientLoader = `next-flight-client-entry-loader?${stringify(
loaderOptions
)}!`
const clientSSRLoader = `next-flight-client-entry-loader?${stringify({
...loaderOptions,
server: true,
20 changes: 0 additions & 20 deletions packages/next/build/webpack/plugins/flight-manifest-plugin.ts
Original file line number Diff line number Diff line change
@@ -56,9 +56,6 @@ export type FlightManifest = {
__ssr_module_mapping__: {
[moduleId: string]: ManifestNode
}
__edge_ssr_module_mapping__: {
[moduleId: string]: ManifestNode
}
} & {
[modulePath: string]: ManifestNode
}
@@ -144,7 +141,6 @@ export class FlightManifestPlugin {
) {
const manifest: FlightManifest = {
__ssr_module_mapping__: {},
__edge_ssr_module_mapping__: {},
}
const dev = this.dev
const fontLoaderTargets = this.fontLoaderTargets
@@ -200,7 +196,6 @@ export class FlightManifestPlugin {

const moduleExports = manifest[resource] || {}
const moduleIdMapping = manifest.__ssr_module_mapping__
const edgeModuleIdMapping = manifest.__edge_ssr_module_mapping__

// Note that this isn't that reliable as webpack is still possible to assign
// additional queries to make sure there's no conflict even using the `named`
@@ -309,25 +304,10 @@ export class FlightManifestPlugin {
...moduleExports[name],
id: ssrNamedModuleId,
}

edgeModuleIdMapping[id] = edgeModuleIdMapping[id] || {}
edgeModuleIdMapping[id][name] = {
...moduleExports[name],
id: ssrNamedModuleId.replace(/\/next\/dist\//, '/next/dist/esm/'),
}
})

manifest[resource] = moduleExports

// The client compiler will always use the CJS Next.js build, so here we
// also add the mapping for the ESM build (Edge runtime) to consume.
if (/\/next\/dist\//.test(resource)) {
manifest[resource.replace(/\/next\/dist\//, '/next/dist/esm/')] =
moduleExports
}

manifest.__ssr_module_mapping__ = moduleIdMapping
manifest.__edge_ssr_module_mapping__ = edgeModuleIdMapping
}

chunkGroup.chunks.forEach((chunk: webpack.Chunk) => {
14 changes: 4 additions & 10 deletions packages/next/build/webpack/plugins/telemetry-plugin.ts
Original file line number Diff line number Diff line change
@@ -110,15 +110,11 @@ function findFeatureInModule(module: Module): Feature | undefined {
* dependency.
*/
function findUniqueOriginModulesInConnections(
connections: Connection[],
originModule: Module
connections: Connection[]
): Set<unknown> {
const originModules = new Set()
for (const connection of connections) {
if (
!originModules.has(connection.originModule) &&
connection.originModule !== originModule
) {
if (!originModules.has(connection.originModule)) {
originModules.add(connection.originModule)
}
}
@@ -165,10 +161,8 @@ export class TelemetryPlugin implements webpack.WebpackPluginInstance {
const connections = (
compilation as any
).moduleGraph.getIncomingConnections(module)
const originModules = findUniqueOriginModulesInConnections(
connections,
module
)
const originModules =
findUniqueOriginModulesInConnections(connections)
this.usageTracker.get(feature)!.invocationCount =
originModules.size
}
5 changes: 1 addition & 4 deletions packages/next/client.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/client/index')
: require('./dist/client/index')
module.exports = require('./dist/client/index')
5 changes: 1 addition & 4 deletions packages/next/config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/shared/lib/runtime-config')
: require('./dist/shared/lib/runtime-config')
module.exports = require('./dist/shared/lib/runtime-config')
5 changes: 1 addition & 4 deletions packages/next/constants.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/shared/lib/constants')
: require('./dist/shared/lib/constants')
module.exports = require('./dist/shared/lib/constants')
5 changes: 1 addition & 4 deletions packages/next/document.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/pages/_document')
: require('./dist/pages/_document')
module.exports = require('./dist/pages/_document')
5 changes: 1 addition & 4 deletions packages/next/dynamic.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/shared/lib/dynamic')
: require('./dist/shared/lib/dynamic')
module.exports = require('./dist/shared/lib/dynamic')
5 changes: 1 addition & 4 deletions packages/next/error.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/pages/_error')
: require('./dist/pages/_error')
module.exports = require('./dist/pages/_error')
5 changes: 1 addition & 4 deletions packages/next/head.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/shared/lib/head')
: require('./dist/shared/lib/head')
module.exports = require('./dist/shared/lib/head')
5 changes: 1 addition & 4 deletions packages/next/image.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/client/image')
: require('./dist/client/image')
module.exports = require('./dist/client/image')
5 changes: 1 addition & 4 deletions packages/next/link.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/client/link')
: require('./dist/client/link')
module.exports = require('./dist/client/link')
6 changes: 2 additions & 4 deletions packages/next/pages/_app.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react'

import type {
import {
loadGetInitialProps,
AppContextType,
AppInitialProps,
AppPropsType,
@@ -9,8 +9,6 @@ import type {
} from '../shared/lib/utils'
import type { Router } from '../client/router'

import { loadGetInitialProps } from '../shared/lib/utils'

export { AppInitialProps, AppType }

export { NextWebVitalsMetric }
5 changes: 1 addition & 4 deletions packages/next/router.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/client/router')
: require('./dist/client/router')
module.exports = require('./dist/client/router')
5 changes: 1 addition & 4 deletions packages/next/script.js
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
module.exports =
process.env.NEXT_RUNTIME === 'edge'
? require('./dist/esm/client/script')
: require('./dist/client/script')
module.exports = require('./dist/client/script')
11 changes: 4 additions & 7 deletions packages/next/server/app-render.tsx
Original file line number Diff line number Diff line change
@@ -258,10 +258,7 @@ function useFlightResponse(

const [renderStream, forwardStream] = readableStreamTee(req)
const res = createFromReadableStream(renderStream, {
moduleMap:
process.env.NEXT_RUNTIME === 'edge'
? serverComponentManifest.__edge_ssr_module_mapping__
: serverComponentManifest.__ssr_module_mapping__,
moduleMap: serverComponentManifest.__ssr_module_mapping__,
})
flightResponseRef.current = res

@@ -273,7 +270,7 @@ function useFlightResponse(
? `<script nonce=${JSON.stringify(nonce)}>`
: '<script>'

function read() {
function process() {
forwardReader.read().then(({ done, value }) => {
if (value) {
rscChunks.push(value)
@@ -299,11 +296,11 @@ function useFlightResponse(
)})</script>`

writer.write(encodeText(scripts))
read()
process()
}
})
}
read()
process()

return res
}
2 changes: 0 additions & 2 deletions packages/next/server/dev/hot-reloader.ts
Original file line number Diff line number Diff line change
@@ -626,7 +626,6 @@ export default class HotReloader {
),
appDir: this.appDir!,
pageExtensions: this.config.pageExtensions,
nextRuntime: 'edge',
}).import
: undefined

@@ -706,7 +705,6 @@ export default class HotReloader {
),
appDir: this.appDir!,
pageExtensions: this.config.pageExtensions,
nextRuntime: 'nodejs',
})
: relativeRequest,
appDir: this.config.experimental.appDir,
7 changes: 3 additions & 4 deletions packages/next/taskfile-swc.js
Original file line number Diff line number Diff line change
@@ -18,7 +18,6 @@ module.exports = function (task) {
stripExtension,
keepImportAssertions = false,
interopClientDefaultExport = false,
esm = false,
} = {}
) {
// Don't compile .d.ts
@@ -29,7 +28,7 @@ module.exports = function (task) {
/** @type {import('@swc/core').Options} */
const swcClientOptions = {
module: {
type: esm ? 'es6' : 'commonjs',
type: 'commonjs',
ignoreDynamic: true,
},
jsc: {
@@ -60,7 +59,7 @@ module.exports = function (task) {
/** @type {import('@swc/core').Options} */
const swcServerOptions = {
module: {
type: esm ? 'es6' : 'commonjs',
type: 'commonjs',
ignoreDynamic: true,
},
env: {
@@ -127,7 +126,7 @@ module.exports = function (task) {
}

if (output.map) {
if (interopClientDefaultExport && !esm) {
if (interopClientDefaultExport) {
output.code += `
if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
Object.defineProperty(exports.default, '__esModule', { value: true });
106 changes: 0 additions & 106 deletions packages/next/taskfile.js
Original file line number Diff line number Diff line change
@@ -1946,23 +1946,16 @@ export async function compile(task, opts) {
'cli',
'bin',
'server',
'server_esm',
'nextbuild',
'nextbuildjest',
'nextbuildstatic',
'nextbuild_esm',
'pages',
'pages_esm',
'lib',
'lib_esm',
'client',
'client_esm',
'telemetry',
'trace',
'shared',
'shared_esm',
'shared_re_exported',
'shared_re_exported_esm',
'server_wasm',
// we compile this each time so that fresh runtime data is pulled
// before each publish
@@ -1997,14 +1990,6 @@ export async function lib(task, opts) {
notify('Compiled lib files')
}

export async function lib_esm(task, opts) {
await task
.source(opts.src || 'lib/**/*.+(js|ts|tsx)')
.swc('server', { dev: opts.dev, esm: true })
.target('dist/esm/lib')
notify('Compiled lib files')
}

export async function server(task, opts) {
await task
.source(opts.src || 'server/**/*.+(js|ts|tsx)')
@@ -2019,14 +2004,6 @@ export async function server(task, opts) {
notify('Compiled server files')
}

export async function server_esm(task, opts) {
await task
.source(opts.src || 'server/**/*.+(js|ts|tsx)')
.swc('server', { dev: opts.dev, esm: true })
.target('dist/esm/server')
notify('Compiled server files to ESM')
}

export async function nextbuild(task, opts) {
await task
.source(opts.src || 'build/**/*.+(js|ts|tsx)', {
@@ -2037,16 +2014,6 @@ export async function nextbuild(task, opts) {
notify('Compiled build files')
}

export async function nextbuild_esm(task, opts) {
await task
.source(opts.src || 'build/**/*.+(js|ts|tsx)', {
ignore: ['**/fixture/**', '**/tests/**', '**/jest/**'],
})
.swc('server', { dev: opts.dev, esm: true })
.target('dist/esm/build')
notify('Compiled build files to ESM')
}

export async function nextbuildjest(task, opts) {
await task
.source(opts.src || 'build/jest/**/*.+(js|ts|tsx)', {
@@ -2065,14 +2032,6 @@ export async function client(task, opts) {
notify('Compiled client files')
}

export async function client_esm(task, opts) {
await task
.source(opts.src || 'client/**/*.+(js|ts|tsx)')
.swc('client', { dev: opts.dev, esm: true })
.target('dist/esm/client')
notify('Compiled client files to ESM')
}

// export is a reserved keyword for functions
export async function nextbuildstatic(task, opts) {
await task
@@ -2103,38 +2062,10 @@ export async function pages_document(task, opts) {
.target('dist/pages')
}

export async function pages_app_esm(task, opts) {
await task
.source('pages/_app.tsx')
.swc('client', { dev: opts.dev, keepImportAssertions: true, esm: true })
.target('dist/esm/pages')
}

export async function pages_error_esm(task, opts) {
await task
.source('pages/_error.tsx')
.swc('client', { dev: opts.dev, keepImportAssertions: true, esm: true })
.target('dist/esm/pages')
}

export async function pages_document_esm(task, opts) {
await task
.source('pages/_document.tsx')
.swc('server', { dev: opts.dev, keepImportAssertions: true, esm: true })
.target('dist/esm/pages')
}

export async function pages(task, opts) {
await task.parallel(['pages_app', 'pages_error', 'pages_document'], opts)
}

export async function pages_esm(task, opts) {
await task.parallel(
['pages_app_esm', 'pages_error_esm', 'pages_document_esm'],
opts
)
}

export async function telemetry(task, opts) {
await task
.source(opts.src || 'telemetry/**/*.+(js|ts|tsx)')
@@ -2162,15 +2093,11 @@ export default async function (task) {
await task.watch('bin/*', 'bin', opts)
await task.watch('pages/**/*.+(js|ts|tsx)', 'pages', opts)
await task.watch('server/**/*.+(js|ts|tsx)', 'server', opts)
await task.watch('server/**/*.+(js|ts|tsx)', 'server_esm', opts)
await task.watch('build/**/*.+(js|ts|tsx)', 'nextbuild', opts)
await task.watch('build/**/*.+(js|ts|tsx)', 'nextbuild_esm', opts)
await task.watch('build/jest/**/*.+(js|ts|tsx)', 'nextbuildjest', opts)
await task.watch('export/**/*.+(js|ts|tsx)', 'nextbuildstatic', opts)
await task.watch('client/**/*.+(js|ts|tsx)', 'client', opts)
await task.watch('client/**/*.+(js|ts|tsx)', 'client_esm', opts)
await task.watch('lib/**/*.+(js|ts|tsx)', 'lib', opts)
await task.watch('lib/**/*.+(js|ts|tsx)', 'lib_esm', opts)
await task.watch('cli/**/*.+(js|ts|tsx)', 'cli', opts)
await task.watch('telemetry/**/*.+(js|ts|tsx)', 'telemetry', opts)
await task.watch('trace/**/*.+(js|ts|tsx)', 'trace', opts)
@@ -2184,16 +2111,6 @@ export default async function (task) {
'shared',
opts
)
await task.watch(
'shared/**/!(amp|config|constants|dynamic|head).+(js|ts|tsx)',
'shared_esm',
opts
)
await task.watch(
'shared/lib/{amp,config,constants,dynamic,head}.+(js|ts|tsx)',
'shared_re_exported_esm',
opts
)
await task.watch('server/**/*.+(wasm)', 'server_wasm', opts)
await task.watch(
'../react-dev-overlay/dist/**/*.js',
@@ -2213,16 +2130,6 @@ export async function shared(task, opts) {
notify('Compiled shared files')
}

export async function shared_esm(task, opts) {
await task
.source(
opts.src || 'shared/**/!(amp|config|constants|dynamic|head).+(js|ts|tsx)'
)
.swc('client', { dev: opts.dev, esm: true })
.target('dist/esm/shared')
notify('Compiled shared files to ESM')
}

export async function shared_re_exported(task, opts) {
await task
.source(
@@ -2234,19 +2141,6 @@ export async function shared_re_exported(task, opts) {
notify('Compiled shared re-exported files')
}

export async function shared_re_exported_esm(task, opts) {
await task
.source(
opts.src || 'shared/**/{amp,config,constants,dynamic,head}.+(js|ts|tsx)'
)
.swc('client', {
dev: opts.dev,
esm: true,
})
.target('dist/esm/shared')
notify('Compiled shared re-exported files as ESM')
}

export async function server_wasm(task, opts) {
await task.source(opts.src || 'server/**/*.+(wasm)').target('dist/server')
notify('Moved server wasm files')

0 comments on commit 4bd4617

Please sign in to comment.