chore(nextjs): clean up constants import path and remove support for Next.js 10 (#11287)

This commit is contained in:
Jack Hsu 2022-07-25 13:51:22 -04:00 committed by GitHub
parent f9a6df5d63
commit c76eb7fb74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 28 additions and 51 deletions

View File

@ -1,26 +1,22 @@
import 'dotenv/config';
import { ExecutorContext } from '@nrwl/devkit';
import build from 'next/dist/build';
import { join, resolve } from 'path';
import { copySync, mkdir } from 'fs-extra';
import { prepareConfig } from '../../utils/config';
import { NextBuildBuilderOptions } from '../../utils/types';
import { createPackageJson } from './lib/create-package-json';
import { createNextConfigFile } from './lib/create-next-config-file';
import { directoryExists } from '@nrwl/workspace/src/utilities/fileutils';
import { readCachedProjectGraph } from '@nrwl/devkit';
import {
calculateProjectDependencies,
DependentBuildableProjectNode,
} from '@nrwl/workspace/src/utilities/buildable-libs-utils';
import { checkPublicDirectory } from './lib/check-project';
import { importConstants } from '../../utils/require-shim';
import { workspaceLayout } from '@nrwl/devkit';
const { PHASE_PRODUCTION_BUILD } = importConstants();
import { prepareConfig } from '../../utils/config';
import { createPackageJson } from './lib/create-package-json';
import { createNextConfigFile } from './lib/create-next-config-file';
import { checkPublicDirectory } from './lib/check-project';
import { NextBuildBuilderOptions } from '../../utils/types';
import { PHASE_PRODUCTION_BUILD } from '../../utils/constants';
export default async function buildExecutor(
options: NextBuildBuilderOptions,

View File

@ -7,23 +7,21 @@ import {
} from '@nrwl/devkit';
import exportApp from 'next/dist/export';
import { join, resolve } from 'path';
import { readCachedProjectGraph } from '@nrwl/devkit';
import {
calculateProjectDependencies,
DependentBuildableProjectNode,
} from '@nrwl/workspace/src/utilities/buildable-libs-utils';
import { workspaceLayout } from '@nrwl/devkit';
import { prepareConfig } from '../../utils/config';
import {
NextBuildBuilderOptions,
NextExportBuilderOptions,
} from '../../utils/types';
import { readCachedProjectGraph } from '@nrwl/devkit';
import {
calculateProjectDependencies,
DependentBuildableProjectNode,
} from '@nrwl/workspace/src/utilities/buildable-libs-utils';
import { importConstants } from '../../utils/require-shim';
import { workspaceLayout } from '@nrwl/devkit';
import { PHASE_EXPORT } from '../../utils/constants';
import nextTrace = require('next/dist/trace');
const { PHASE_EXPORT } = importConstants();
export default async function exportExecutor(
options: NextExportBuilderOptions,
context: ExecutorContext

View File

@ -5,10 +5,15 @@ import {
parseTargetString,
readTargetOptions,
} from '@nrwl/devkit';
import * as chalk from 'chalk';
import { existsSync } from 'fs';
import { join, resolve } from 'path';
import { readCachedProjectGraph } from '@nrwl/devkit';
import {
calculateProjectDependencies,
DependentBuildableProjectNode,
} from '@nrwl/workspace/src/utilities/buildable-libs-utils';
import { workspaceLayout } from '@nrwl/devkit';
import { prepareConfig } from '../../utils/config';
import {
@ -20,16 +25,11 @@ import {
} from '../../utils/types';
import { customServer } from './lib/custom-server';
import { defaultServer } from './lib/default-server';
import { readCachedProjectGraph } from '@nrwl/devkit';
import {
calculateProjectDependencies,
DependentBuildableProjectNode,
} from '@nrwl/workspace/src/utilities/buildable-libs-utils';
import { assertDependentProjectsHaveBeenBuilt } from '../../utils/buildable-libs';
import { importConstants } from '../../utils/require-shim';
import { workspaceLayout } from '@nrwl/devkit';
const { PHASE_DEVELOPMENT_SERVER, PHASE_PRODUCTION_SERVER } = importConstants();
import {
PHASE_DEVELOPMENT_SERVER,
PHASE_PRODUCTION_SERVER,
} from '../../utils/constants';
const infoPrefix = `[ ${chalk.dim(chalk.cyan('info'))} ] `;
const readyPrefix = `[ ${chalk.green('ready')} ]`;

View File

@ -1,9 +1,8 @@
import { chain, Rule, Tree } from '@angular-devkit/schematics';
import { formatFiles, readWorkspace } from '@nrwl/workspace';
import { join } from 'path';
import { importConstants } from '../../utils/require-shim';
const { CONFIG_FILE, CONFIG_FILES } = importConstants();
import { CONFIG_FILES } from '../../utils/constants';
const defaultConfig = `const withSass = require('@zeit/next-sass');
const withLess = require('@zeit/next-less');
@ -41,7 +40,7 @@ export default function update(): Rule {
// Next.js 12 specifies two config files.
const configFile = Array.isArray(CONFIG_FILES)
? CONFIG_FILES[0]
: CONFIG_FILE;
: 'next.config.js';
const configPath = join(p.root, configFile);
if (!host.exists(configPath)) {
host.create(configPath, defaultConfig);

View File

@ -1,10 +1,9 @@
import { createWebpackConfig, prepareConfig } from './config';
import { NextBuildBuilderOptions } from '@nrwl/next';
import { dirname } from 'path';
import { importConstants } from './require-shim';
import { TsconfigPathsPlugin } from 'tsconfig-paths-webpack-plugin';
const { PHASE_PRODUCTION_BUILD } = importConstants();
import { PHASE_PRODUCTION_BUILD } from './constants';
jest.mock('@nrwl/web/src/utils/config', () => ({
createCopyPlugin: () => {},

View File

@ -28,8 +28,7 @@ import {
createTmpTsConfig,
DependentBuildableProjectNode,
} from '@nrwl/workspace/src/utilities/buildable-libs-utils';
import { importConfig } from './require-shim';
const loadConfig = importConfig();
const loadConfig = require('next/dist/server/config').default;
export function createWebpackConfig(
workspaceRoot: string,

View File

@ -0,0 +1 @@
export * from 'next/dist/shared/lib/constants';

View File

@ -1,15 +0,0 @@
export function importConstants() {
try {
return require('next/dist/next-server/lib/constants');
} catch {
return require('next/dist/shared/lib/constants');
}
}
export function importConfig() {
try {
return require('next/dist/next-server/lib/config').default;
} catch {
return require('next/dist/server/config').default;
}
}