diff --git a/.changeset/mighty-buckets-throw.md b/.changeset/mighty-buckets-throw.md new file mode 100644 index 0000000..babf686 --- /dev/null +++ b/.changeset/mighty-buckets-throw.md @@ -0,0 +1,7 @@ +--- +"@naverpay/pite": patch +--- + +pite에서 사용중인 caniuse-lite버전을 빌드시 로그에 보여주도록 수정 + +PR: [pite에서 사용중인 caniuse-lite버전을 빌드시 로그에 보여주도록 수정](https://github.com/NaverPayDev/pite/pull/50) diff --git a/package.json b/package.json index 645f194..d0d19c4 100644 --- a/package.json +++ b/package.json @@ -52,12 +52,13 @@ "**/*.{ts,tsx,js,jsx}": "eslint" }, "dependencies": { + "@babel/plugin-syntax-import-attributes": "^7.26.0", "@babel/plugin-transform-runtime": "^7.25.9", "@naverpay/browserslist-config": "^2.0.0", "@naverpay/publint": "^0.0.5", "@rollup/plugin-babel": "^6.0.4", "babel-plugin-polyfill-corejs3": "^0.11.0", - "browserslist": "^4.24.2", + "browserslist": "4.24.4", "browserslist-to-esbuild": "^2.1.1", "chalk": "^5.4.1", "cosmiconfig": "^9.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0bfad8f..cd80946 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + '@babel/plugin-syntax-import-attributes': + specifier: ^7.26.0 + version: 7.26.0(@babel/core@7.26.0) '@babel/plugin-transform-runtime': specifier: ^7.25.9 version: 7.25.9(@babel/core@7.26.0) @@ -24,11 +27,11 @@ importers: specifier: ^0.11.0 version: 0.11.0(@babel/core@7.26.0) browserslist: - specifier: ^4.24.2 - version: 4.24.2 + specifier: 4.24.4 + version: 4.24.4 browserslist-to-esbuild: specifier: ^2.1.1 - version: 2.1.1(browserslist@4.24.2) + version: 2.1.1(browserslist@4.24.4) chalk: specifier: ^5.4.1 version: 5.4.1 @@ -85,6 +88,49 @@ importers: specifier: ^5.6.3 version: 5.6.3 + packages/pite/dist: + dependencies: + '@babel/plugin-transform-runtime': + specifier: ^7.25.9 + version: 7.25.9(@babel/core@7.26.0) + '@naverpay/browserslist-config': + specifier: ^2.0.0 + version: 2.0.0 + '@rollup/plugin-babel': + specifier: ^6.0.4 + version: 6.0.4(@babel/core@7.26.0)(rollup@4.27.4) + babel-plugin-polyfill-corejs3: + specifier: ^0.11.0 + version: 0.11.0(@babel/core@7.26.0) + browserslist: + specifier: ^4.24.2 + version: 4.24.2 + browserslist-to-esbuild: + specifier: ^2.1.1 + version: 2.1.1(browserslist@4.24.2) + cosmiconfig: + specifier: ^9.0.0 + version: 9.0.0(typescript@5.6.3) + glob: + specifier: ^11.0.1 + version: 11.0.1 + sass-embedded: + specifier: ^1.83.4 + version: 1.83.4 + tsup: + specifier: '>=8.3.5' + version: 8.3.5(@microsoft/api-extractor@7.48.0(@types/node@22.10.2))(postcss@8.5.1)(typescript@5.6.3)(yaml@2.5.1) + vite: + specifier: '>=6.0.10' + version: 6.0.11(@types/node@22.10.2)(sass-embedded@1.83.4)(yaml@2.5.1) + devDependencies: + '@types/node': + specifier: ^22.10.2 + version: 22.10.2 + builtins: + specifier: ^5.1.0 + version: 5.1.0 + packages: '@ampproject/remapping@2.3.0': @@ -193,6 +239,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-attributes@7.26.0': + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.25.9': resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} @@ -1015,6 +1067,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + buffer-builder@0.2.0: resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} @@ -1046,6 +1103,9 @@ packages: caniuse-lite@1.0.30001680: resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} + caniuse-lite@1.0.30001701: + resolution: {integrity: sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -1245,6 +1305,9 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + electron-to-chromium@1.5.105: + resolution: {integrity: sha512-ccp7LocdXx3yBhwiG0qTQ7XFrK48Ua2pxIxBdJO8cbddp/MvbBtPFzvnTchtyHQTsgqqczO8cdmAIbpMa0u2+g==} + electron-to-chromium@1.5.58: resolution: {integrity: sha512-al2l4r+24ZFL7WzyPTlyD0fC33LLzvxqLCwurtBibVPghRGO9hSTl+tis8t1kD7biPiH/en4U0I7o/nQbYeoVA==} @@ -2247,6 +2310,9 @@ packages: node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -3241,7 +3307,7 @@ snapshots: dependencies: '@babel/compat-data': 7.26.2 '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.2 + browserslist: 4.24.4 lru-cache: 5.1.1 semver: 6.3.1 @@ -3337,6 +3403,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -4262,6 +4333,11 @@ snapshots: browserslist: 4.24.2 meow: 13.2.0 + browserslist-to-esbuild@2.1.1(browserslist@4.24.4): + dependencies: + browserslist: 4.24.4 + meow: 13.2.0 + browserslist@4.24.2: dependencies: caniuse-lite: 1.0.30001680 @@ -4269,6 +4345,13 @@ snapshots: node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.2) + browserslist@4.24.4: + dependencies: + caniuse-lite: 1.0.30001701 + electron-to-chromium: 1.5.105 + node-releases: 2.0.19 + update-browserslist-db: 1.1.1(browserslist@4.24.4) + buffer-builder@0.2.0: {} builtin-modules@3.3.0: {} @@ -4296,6 +4379,8 @@ snapshots: caniuse-lite@1.0.30001680: {} + caniuse-lite@1.0.30001701: {} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -4354,7 +4439,7 @@ snapshots: core-js-compat@3.39.0: dependencies: - browserslist: 4.24.2 + browserslist: 4.24.4 cosmiconfig@9.0.0(typescript@5.6.3): dependencies: @@ -4481,6 +4566,8 @@ snapshots: eastasianwidth@0.2.0: {} + electron-to-chromium@1.5.105: {} + electron-to-chromium@1.5.58: {} emoji-regex@10.4.0: {} @@ -5655,6 +5742,8 @@ snapshots: node-releases@2.0.18: {} + node-releases@2.0.19: {} + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 @@ -6464,6 +6553,12 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.1.1(browserslist@4.24.4): + dependencies: + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 diff --git a/src/browserslist.ts b/src/browserslistConfig.ts similarity index 100% rename from src/browserslist.ts rename to src/browserslistConfig.ts diff --git a/src/caniuse.ts b/src/caniuse.ts new file mode 100644 index 0000000..e160c09 --- /dev/null +++ b/src/caniuse.ts @@ -0,0 +1,14 @@ +/* eslint-disable no-console */ +import packageJsonContent from 'browserslist/package.json' with {type: 'json'} +import chalk from 'chalk' + +export async function printCaniuseLiteVersion() { + try { + const caniuseVersion = packageJsonContent.dependencies['caniuse-lite'].replace('^', '') + const caniuseUrl = `https://unpkg.com/browse/caniuse-lite@${caniuseVersion}/` + + console.log(chalk.magenta(`\ncurrent caniuse-lite version : ${caniuseVersion}\n${caniuseUrl}\n`)) + } catch (error) { + console.error('cannot found browserslist version', error) + } +} diff --git a/src/index.ts b/src/index.ts index f8d9014..da8bb94 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,8 @@ import browserslistToEsbuild from 'browserslist-to-esbuild' import preserveDirectives from 'rollup-plugin-preserve-directives' import {BuildOptions, defineConfig, Plugin} from 'vite' -import {getBrowserslistConfig} from './browserslist' +import {getBrowserslistConfig} from './browserslistConfig' +import {printCaniuseLiteVersion} from './caniuse' import {getExternalDependencies} from './dependencies' import {getViteEntry} from './getViteEntry' import publint from './plugins/rollup-plugin-publint' @@ -59,6 +60,8 @@ export function createViteConfig({ const browserslist = isValidBrowserslistConfig(browserslistConfig) ? browserslistConfig : defaultBrowserslist + printCaniuseLiteVersion() + const build: BuildOptions = { target: browserslistToEsbuild(browserslist), lib: { @@ -103,6 +106,7 @@ export function createViteConfig({ babel({ babelHelpers: 'runtime', plugins: [ + ['@babel/plugin-syntax-import-attributes'], ['@babel/plugin-transform-runtime'], [ 'babel-plugin-polyfill-corejs3', @@ -143,6 +147,11 @@ export function createViteConfig({ ] return defineConfig({ + esbuild: { + supported: { + 'import-assertions': true, + }, + }, build, plugins, })