Fix .default is not a function errors (#18188)

* fix .default is not a function errors

* use workaround

* use workaround for the other plugins as well

* upgrade rollup plugin commonjs and terser

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
This commit is contained in:
Azri Kahar
2023-04-15 00:43:51 +08:00
committed by GitHub
parent 8b723f4581
commit f016e22daf
3 changed files with 38 additions and 46 deletions

View File

@@ -39,11 +39,11 @@
"@directus/constants": "workspace:*",
"@directus/types": "workspace:*",
"@directus/utils": "workspace:*",
"@rollup/plugin-commonjs": "23.0.4",
"@rollup/plugin-commonjs": "24.1.0",
"@rollup/plugin-json": "6.0.0",
"@rollup/plugin-node-resolve": "15.0.1",
"@rollup/plugin-replace": "5.0.2",
"@rollup/plugin-terser": "0.4.0",
"@rollup/plugin-terser": "0.4.1",
"@rollup/plugin-virtual": "3.0.1",
"@vue/compiler-sfc": "3.2.47",
"chalk": "4.1.2",

View File

@@ -15,12 +15,12 @@ import type {
ExtensionManifest as TExtensionManifest,
} from '@directus/types';
import { isIn, isTypeIn } from '@directus/utils';
import commonjs from '@rollup/plugin-commonjs';
import json from '@rollup/plugin-json';
import commonjsDefault from '@rollup/plugin-commonjs';
import jsonDefault from '@rollup/plugin-json';
import { nodeResolve } from '@rollup/plugin-node-resolve';
import replace from '@rollup/plugin-replace';
import terser from '@rollup/plugin-terser';
import virtual from '@rollup/plugin-virtual';
import replaceDefault from '@rollup/plugin-replace';
import terserDefault from '@rollup/plugin-terser';
import virtualDefault from '@rollup/plugin-virtual';
import chalk from 'chalk';
import fse from 'fs-extra';
import ora from 'ora';
@@ -33,9 +33,9 @@ import {
rollup,
watch as rollupWatch,
} from 'rollup';
import esbuild from 'rollup-plugin-esbuild';
import styles from 'rollup-plugin-styles';
import vue from 'rollup-plugin-vue';
import esbuildDefault from 'rollup-plugin-esbuild';
import stylesDefault from 'rollup-plugin-styles';
import vueDefault from 'rollup-plugin-vue';
import type { Language, RollupConfig, RollupMode } from '../types.js';
import { getLanguageFromPath, isLanguage } from '../utils/languages.js';
import { clear, log } from '../utils/logger.js';
@@ -44,6 +44,16 @@ import generateBundleEntrypoint from './helpers/generate-bundle-entrypoint.js';
import loadConfig from './helpers/load-config.js';
import { validateSplitEntrypointOption } from './helpers/validate-cli-options.js';
// Workaround for https://github.com/rollup/plugins/issues/1329
const virtual = virtualDefault as unknown as typeof virtualDefault.default;
const vue = vueDefault as unknown as typeof vueDefault.default;
const esbuild = esbuildDefault as unknown as typeof esbuildDefault.default;
const styles = stylesDefault as unknown as typeof stylesDefault.default;
const commonjs = commonjsDefault as unknown as typeof commonjsDefault.default;
const json = jsonDefault as unknown as typeof jsonDefault.default;
const replace = replaceDefault as unknown as typeof replaceDefault.default;
const terser = terserDefault as unknown as typeof terserDefault.default;
type BuildOptions = {
type?: string;
input?: string;
@@ -560,21 +570,21 @@ function getRollupOptions({
input: typeof input !== 'string' ? 'entry' : input,
external: mode === 'browser' ? APP_SHARED_DEPS : API_SHARED_DEPS,
plugins: [
typeof input !== 'string' ? virtual.default(input) : null,
mode === 'browser' ? (vue.default({ preprocessStyles: true }) as Plugin) : null,
languages.includes('typescript') ? esbuild.default({ include: /\.tsx?$/, sourceMap: sourcemap }) : null,
mode === 'browser' ? styles.default() : null,
typeof input !== 'string' ? virtual(input) : null,
mode === 'browser' ? (vue({ preprocessStyles: true }) as Plugin) : null,
languages.includes('typescript') ? esbuild({ include: /\.tsx?$/, sourceMap: sourcemap }) : null,
mode === 'browser' ? styles() : null,
...plugins,
nodeResolve({ browser: mode === 'browser' }),
commonjs.default({ esmExternals: mode === 'browser', sourceMap: sourcemap }),
json.default(),
replace.default({
commonjs({ esmExternals: mode === 'browser', sourceMap: sourcemap }),
json(),
replace({
values: {
'process.env.NODE_ENV': JSON.stringify('production'),
},
preventAssignment: true,
}),
minify ? terser.default() : null,
minify ? terser() : null,
],
};
}

38
pnpm-lock.yaml generated
View File

@@ -947,8 +947,8 @@ importers:
specifier: workspace:*
version: link:../utils
'@rollup/plugin-commonjs':
specifier: 23.0.4
version: 23.0.4(rollup@3.19.1)
specifier: 24.1.0
version: 24.1.0(rollup@3.19.1)
'@rollup/plugin-json':
specifier: 6.0.0
version: 6.0.0(rollup@3.19.1)
@@ -959,8 +959,8 @@ importers:
specifier: 5.0.2
version: 5.0.2(rollup@3.19.1)
'@rollup/plugin-terser':
specifier: 0.4.0
version: 0.4.0(rollup@3.19.1)
specifier: 0.4.1
version: 0.4.1(rollup@3.19.1)
'@rollup/plugin-virtual':
specifier: 3.0.1
version: 3.0.1(rollup@3.19.1)
@@ -5576,8 +5576,8 @@ packages:
slash: 4.0.0
dev: false
/@rollup/plugin-commonjs@23.0.4(rollup@3.19.1):
resolution: {integrity: sha512-bOPJeTZg56D2MCm+TT4psP8e8Jmf1Jsi7pFUMl8BN5kOADNzofNHe47+84WVCt7D095xPghC235/YKuNDEhczg==}
/@rollup/plugin-commonjs@24.1.0(rollup@3.19.1):
resolution: {integrity: sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.68.0||^3.0.0
@@ -5588,9 +5588,9 @@ packages:
'@rollup/pluginutils': 5.0.2(rollup@3.19.1)
commondir: 1.0.1
estree-walker: 2.0.2
glob: 8.0.3
glob: 8.1.0
is-reference: 1.2.1
magic-string: 0.26.7
magic-string: 0.27.0
rollup: 3.19.1
dev: false
@@ -5639,8 +5639,8 @@ packages:
rollup: 3.19.1
dev: false
/@rollup/plugin-terser@0.4.0(rollup@3.19.1):
resolution: {integrity: sha512-Ipcf3LPNerey1q9ZMjiaWHlNPEHNU/B5/uh9zXLltfEQ1lVSLLeZSgAtTPWGyw8Ip1guOeq+mDtdOlEj/wNxQw==}
/@rollup/plugin-terser@0.4.1(rollup@3.19.1):
resolution: {integrity: sha512-aKS32sw5a7hy+fEXVy+5T95aDIwjpGHCTv833HXVtyKMDoVS7pBr5K3L9hEQoNqbJFjfANPrNpIXlTQ7is00eA==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.x || ^3.x
@@ -11268,17 +11268,6 @@ packages:
once: 1.4.0
path-is-absolute: 1.0.1
/glob@8.0.3:
resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==}
engines: {node: '>=12'}
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
minimatch: 5.1.2
once: 1.4.0
dev: false
/glob@8.1.0:
resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
engines: {node: '>=12'}
@@ -13280,13 +13269,6 @@ packages:
dependencies:
sourcemap-codec: 1.4.8
/magic-string@0.26.7:
resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==}
engines: {node: '>=12'}
dependencies:
sourcemap-codec: 1.4.8
dev: false
/magic-string@0.27.0:
resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
engines: {node: '>=12'}