diff --git a/.changeset/eighty-trees-behave.md b/.changeset/eighty-trees-behave.md new file mode 100644 index 00000000..77780f85 --- /dev/null +++ b/.changeset/eighty-trees-behave.md @@ -0,0 +1,5 @@ +--- +'@ice/pkg': major +--- + +feat: change polyfill default to none [BREAK] diff --git a/packages/pkg/src/core/init.ts b/packages/pkg/src/core/init.ts index 91fb1e07..5c9a192a 100644 --- a/packages/pkg/src/core/init.ts +++ b/packages/pkg/src/core/init.ts @@ -22,7 +22,6 @@ const defaultBundleUserConfig: BundleUserConfig = { js: defaultMinifyFunction, css: defaultMinifyFunction, }, - polyfill: 'usage', compileDependencies: false, }; diff --git a/packages/pkg/src/rollupPlugins/swc.ts b/packages/pkg/src/rollupPlugins/swc.ts index 9c7eec6c..b3d79f7a 100644 --- a/packages/pkg/src/rollupPlugins/swc.ts +++ b/packages/pkg/src/rollupPlugins/swc.ts @@ -97,7 +97,7 @@ async function transformImport(source: string, sourceFilename: string) { } if (targetImport.n.startsWith('@swc/helpers')) { if (!isESM) { - // Replace @swc/helpers with cjs path. + // Replace @swc/helpers with cjs const importStr = source.substring(targetImport.ss, targetImport.se); // Import rule: import { _ as _type_of } from "@swc/helpers/_/_type_of"; const matchImport = importStr.match(/import\s+{\s+([\w*\s{},]*)\s+}\s+from\s+['"](.*)['"]/); @@ -107,6 +107,12 @@ async function transformImport(source: string, sourceFilename: string) { str().overwrite(targetImport.ss, targetImport.se, replaceModule); } } + } else if (targetImport.n.startsWith('core-js')) { + // Replace core-js with cjs + if (!isESM) { + const replaceRequire = `require('${targetImport.n}')`; + str().overwrite(targetImport.ss, targetImport.se, replaceRequire); + } } }); diff --git a/packages/pkg/src/types.ts b/packages/pkg/src/types.ts index 3fa3ef6b..f1a5509f 100644 --- a/packages/pkg/src/types.ts +++ b/packages/pkg/src/types.ts @@ -125,10 +125,8 @@ export interface BundleUserConfig { }; /** - * Weather or not add the polyfill to the code. - * @default ['usage'] - * - * In the next version(v2), the value of polyfill will be `false`. + * Weather or not add the polyfill(core-js) to the code. + * `undefined` is equivalent to `false` */ polyfill?: false | 'entry' | 'usage'; diff --git a/packages/pkg/tests/core/initContextTasks.test.ts b/packages/pkg/tests/core/init.test.ts similarity index 99% rename from packages/pkg/tests/core/initContextTasks.test.ts rename to packages/pkg/tests/core/init.test.ts index f81dee10..d8c58de9 100644 --- a/packages/pkg/tests/core/initContextTasks.test.ts +++ b/packages/pkg/tests/core/init.test.ts @@ -402,7 +402,7 @@ describe('initTask', () => { }); describe.each<[key: keyof BundleUserConfig, defaultValue: any, validValues: any[]]>([ - ['polyfill', 'usage', [false, 'usage', 'entry']], + ['polyfill', undefined, [false, 'usage', 'entry']], ['compileDependencies', false, [false, true, ['react']]], ['externals', undefined, [false, { react: 'React' }]], ['browser', undefined, [false, true]],