diff --git a/.github/workflows/pake-cli.yaml b/.github/workflows/pake-cli.yaml index 92a6fe9..98d565b 100644 --- a/.github/workflows/pake-cli.yaml +++ b/.github/workflows/pake-cli.yaml @@ -66,6 +66,9 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 + with: + version: 10.15.0 + run_install: false - name: Install node uses: actions/setup-node@v4 diff --git a/.github/workflows/quality-and-test.yml b/.github/workflows/quality-and-test.yml index 0a0763a..87ba423 100644 --- a/.github/workflows/quality-and-test.yml +++ b/.github/workflows/quality-and-test.yml @@ -24,6 +24,9 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 + with: + version: 10.15.0 + run_install: false - name: Setup Node.js uses: actions/setup-node@v4 @@ -94,6 +97,9 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 + with: + version: 10.15.0 + run_install: false - name: Setup Node.js uses: actions/setup-node@v4 @@ -165,6 +171,9 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 + with: + version: 10.15.0 + run_install: false - name: Setup Node.js uses: actions/setup-node@v4 diff --git a/.github/workflows/single-app.yaml b/.github/workflows/single-app.yaml index 7eed295..1709ade 100644 --- a/.github/workflows/single-app.yaml +++ b/.github/workflows/single-app.yaml @@ -74,6 +74,9 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 + with: + version: 10.15.0 + run_install: false - name: Setup Node.js uses: actions/setup-node@v4 diff --git a/dist/cli.js b/dist/cli.js index 67a5b9a..c6a1217 100755 --- a/dist/cli.js +++ b/dist/cli.js @@ -25,8 +25,9 @@ var name = "pake-cli"; var version = "3.2.16"; var description = "🤱🏻 Turn any webpage into a desktop app with Rust. 🤱🏻 利用 Rust 轻松构建轻量级多端桌面应用。"; var engines = { - node: ">=16.0.0" + node: ">=18.0.0" }; +var packageManager = "pnpm@10.15.0"; var bin = { pake: "./dist/cli.js" }; @@ -51,19 +52,19 @@ var files = [ "src-tauri" ]; var scripts = { - start: "npm run dev", - dev: "npm run tauri dev", - build: "npm run tauri build --", - "build:debug": "npm run tauri build -- --debug", - "build:mac": "npm run tauri build -- --target universal-apple-darwin", + start: "pnpm run dev", + dev: "pnpm run tauri dev", + build: "pnpm run tauri build --", + "build:debug": "pnpm run tauri build -- --debug", + "build:mac": "pnpm run tauri build -- --target universal-apple-darwin", "build:config": "chmod +x scripts/configure-tauri.mjs && node scripts/configure-tauri.mjs", analyze: "cd src-tauri && cargo bloat --release --crates", tauri: "tauri", cli: "cross-env NODE_ENV=development rollup -c -w", "cli:build": "cross-env NODE_ENV=production rollup -c", - test: "npm run cli:build && cross-env PAKE_CREATE_APP=1 node tests/index.js", + test: "pnpm run cli:build && cross-env PAKE_CREATE_APP=1 node tests/index.js", format: "prettier --write . --ignore-unknown && find tests -name '*.js' -exec sed -i '' 's/[[:space:]]*$//' {} \\; && cd src-tauri && cargo fmt --verbose", - prepublishOnly: "npm run cli:build" + prepublishOnly: "pnpm run cli:build" }; var type = "module"; var exports = "./dist/cli.js"; @@ -111,6 +112,7 @@ var packageJson = { version: version, description: description, engines: engines, + packageManager: packageManager, bin: bin, repository: repository, author: author, @@ -559,8 +561,8 @@ StartupNotify=true tauriConf.app.security = { headers: { 'Cross-Origin-Opener-Policy': 'same-origin', - 'Cross-Origin-Embedder-Policy': 'require-corp' - } + 'Cross-Origin-Embedder-Policy': 'require-corp', + }, }; } // Save config file. @@ -599,6 +601,32 @@ class BaseBuilder { getBuildTimeout() { return 900000; // 15 minutes for all builds } + async detectPackageManager() { + // 使用缓存避免重复检测 + if (BaseBuilder.packageManagerCache) { + return BaseBuilder.packageManagerCache; + } + const { execa } = await import('execa'); + // 优先使用pnpm(如果可用) + try { + await execa('pnpm', ['--version'], { stdio: 'ignore' }); + logger.info('✺ Using pnpm for package management.'); + BaseBuilder.packageManagerCache = 'pnpm'; + return 'pnpm'; + } + catch { + // pnpm不可用,回退到npm + try { + await execa('npm', ['--version'], { stdio: 'ignore' }); + logger.info('✺ pnpm not available, using npm for package management.'); + BaseBuilder.packageManagerCache = 'npm'; + return 'npm'; + } + catch { + throw new Error('Neither pnpm nor npm is available. Please install a package manager.'); + } + } + } async prepare() { const tauriSrcPath = path.join(npmDirectory, 'src-tauri'); const tauriTargetPath = path.join(tauriSrcPath, 'target'); @@ -626,8 +654,8 @@ class BaseBuilder { const rustProjectDir = path.join(tauriSrcPath, '.cargo'); const projectConf = path.join(rustProjectDir, 'config.toml'); await fsExtra.ensureDir(rustProjectDir); - // 统一使用npm,简单可靠 - const packageManager = 'npm'; + // 智能检测可用的包管理器 + const packageManager = await this.detectPackageManager(); const registryOption = isChina ? ' --registry=https://registry.npmmirror.com' : ''; @@ -635,7 +663,7 @@ class BaseBuilder { const timeout = this.getInstallTimeout(); const buildEnv = this.getBuildEnvironment(); if (isChina) { - logger.info('✺ Located in China, using npm/rsProxy CN mirror.'); + logger.info(`✺ Located in China, using ${packageManager}/rsProxy CN mirror.`); const projectCnConf = path.join(tauriSrcPath, 'rust_proxy.toml'); await fsExtra.copy(projectCnConf, projectConf); await shellExec(`cd "${npmDirectory}" && ${packageManager} install${registryOption}${legacyPeerDeps} --silent`, timeout, buildEnv); @@ -657,15 +685,17 @@ class BaseBuilder { async buildAndCopy(url, target) { const { name } = this.options; await mergeConfig(url, this.options, tauriConfig); + // Detect available package manager + const packageManager = await this.detectPackageManager(); // Build app const buildSpinner = getSpinner('Building app...'); - // Let spinner run for a moment so user can see it, then stop before npm command + // Let spinner run for a moment so user can see it, then stop before package manager command await new Promise((resolve) => setTimeout(resolve, 500)); buildSpinner.stop(); // Show static message to keep the status visible logger.warn('✸ Building app...'); const buildEnv = this.getBuildEnvironment(); - await shellExec(`cd "${npmDirectory}" && ${this.getBuildCommand()}`, this.getBuildTimeout(), buildEnv); + await shellExec(`cd "${npmDirectory}" && ${this.getBuildCommand(packageManager)}`, this.getBuildTimeout(), buildEnv); // Copy app const fileName = this.getFileName(); const fileType = this.getFileType(target); @@ -679,10 +709,10 @@ class BaseBuilder { getFileType(target) { return target; } - getBuildCommand() { + getBuildCommand(packageManager = 'pnpm') { const baseCommand = this.options.debug - ? 'npm run build:debug' - : 'npm run build'; + ? `${packageManager} run build:debug` + : `${packageManager} run build`; // Use temporary config directory to avoid modifying source files const configPath = path.join(npmDirectory, 'src-tauri', '.pake', 'tauri.conf.json'); let fullCommand = `${baseCommand} -- -c "${configPath}"`; @@ -725,6 +755,7 @@ class BaseBuilder { return path.join(npmDirectory, this.getBasePath(), bundleDir, `${fileName}.${fileType}`); } } +BaseBuilder.packageManagerCache = null; class MacBuilder extends BaseBuilder { constructor(options) { @@ -765,13 +796,13 @@ class MacBuilder extends BaseBuilder { } return `${name}_${tauriConfig.version}_${arch}`; } - getBuildCommand() { + getBuildCommand(packageManager = 'pnpm') { // Determine if we need universal build const needsUniversal = this.buildArch === 'universal' || this.options.multiArch; if (needsUniversal) { const baseCommand = this.options.debug - ? 'npm run tauri build -- --debug' - : 'npm run tauri build --'; + ? `${packageManager} run tauri build -- --debug` + : `${packageManager} run tauri build --`; // Use temporary config directory to avoid modifying source files const configPath = path.join('src-tauri', '.pake', 'tauri.conf.json'); let fullCommand = `${baseCommand} --target universal-apple-darwin -c "${configPath}"`; @@ -790,8 +821,8 @@ class MacBuilder extends BaseBuilder { else if (this.buildArch === 'apple') { // Build for Apple Silicon only const baseCommand = this.options.debug - ? 'npm run tauri build -- --debug' - : 'npm run tauri build --'; + ? `${packageManager} run tauri build -- --debug` + : `${packageManager} run tauri build --`; const configPath = path.join('src-tauri', '.pake', 'tauri.conf.json'); let fullCommand = `${baseCommand} --target aarch64-apple-darwin -c "${configPath}"`; // Add features @@ -808,8 +839,8 @@ class MacBuilder extends BaseBuilder { else if (this.buildArch === 'intel') { // Build for Intel only const baseCommand = this.options.debug - ? 'npm run tauri build -- --debug' - : 'npm run tauri build --'; + ? `${packageManager} run tauri build -- --debug` + : `${packageManager} run tauri build --`; const configPath = path.join('src-tauri', '.pake', 'tauri.conf.json'); let fullCommand = `${baseCommand} --target x86_64-apple-darwin -c "${configPath}"`; // Add features @@ -871,10 +902,10 @@ class WinBuilder extends BaseBuilder { } return `${name}_${tauriConfig.version}_${targetArch}_${language}`; } - getBuildCommand() { + getBuildCommand(packageManager = 'pnpm') { const baseCommand = this.options.debug - ? 'npm run build:debug' - : 'npm run build'; + ? `${packageManager} run build:debug` + : `${packageManager} run build`; // Use temporary config directory to avoid modifying source files const configPath = path.join('src-tauri', '.pake', 'tauri.conf.json'); let fullCommand = `${baseCommand} -- -c "${configPath}"`; @@ -968,10 +999,10 @@ class LinuxBuilder extends BaseBuilder { } } } - getBuildCommand() { + getBuildCommand(packageManager = 'pnpm') { const baseCommand = this.options.debug - ? 'npm run build:debug' - : 'npm run build'; + ? `${packageManager} run build:debug` + : `${packageManager} run build`; // Use temporary config directory to avoid modifying source files const configPath = path.join('src-tauri', '.pake', 'tauri.conf.json'); let fullCommand = `${baseCommand} -- -c "${configPath}"`; @@ -1503,7 +1534,7 @@ program await checkUpdateTips(); if (!url) { program.help({ - error: false + error: false, }); return; } diff --git a/package.json b/package.json index 7fea0b1..2050a23 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "cross-env": "^7.0.3", "prettier": "^3.6.2", "rollup": "^4.46.3", - "@rollup/plugin-typescript": "^12.1.2", + "rollup-plugin-typescript2": "^0.36.0", "tslib": "^2.8.1", "typescript": "^5.9.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ce823a8..e1cd3a8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,9 +72,6 @@ importers: '@rollup/plugin-terser': specifier: ^0.4.4 version: 0.4.4(rollup@4.48.1) - '@rollup/plugin-typescript': - specifier: ^12.1.2 - version: 12.1.4(rollup@4.48.1)(tslib@2.8.1)(typescript@5.9.2) '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 @@ -105,6 +102,9 @@ importers: rollup: specifier: ^4.46.3 version: 4.48.1 + rollup-plugin-typescript2: + specifier: ^0.36.0 + version: 0.36.0(rollup@4.48.1)(typescript@5.9.2) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -295,18 +295,9 @@ packages: rollup: optional: true - '@rollup/plugin-typescript@12.1.4': - resolution: {integrity: sha512-s5Hx+EtN60LMlDBvl5f04bEiFZmAepk27Q+mr85L/00zPDn1jtzlTV6FWn81MaIwqfWzKxmOJrBWHU6vtQyedQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.14.0||^3.0.0||^4.0.0 - tslib: '*' - typescript: '>=3.7.0' - peerDependenciesMeta: - rollup: - optional: true - tslib: - optional: true + '@rollup/pluginutils@4.2.1': + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} '@rollup/pluginutils@5.2.0': resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} @@ -742,6 +733,14 @@ packages: resolution: {integrity: sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==} engines: {node: '>=14.16'} + find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + follow-redirects@1.15.11: resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} @@ -755,6 +754,10 @@ packages: resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + fs-extra@11.3.1: resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==} engines: {node: '>=14.14'} @@ -831,10 +834,6 @@ packages: is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -897,6 +896,10 @@ packages: resolution: {integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==} engines: {node: '>=18'} + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + log-symbols@6.0.0: resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} engines: {node: '>=18'} @@ -908,6 +911,10 @@ packages: magic-string@0.30.18: resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -939,6 +946,18 @@ packages: resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} engines: {node: '>=18'} + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + package-json@10.0.1: resolution: {integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==} engines: {node: '>=18'} @@ -947,6 +966,10 @@ packages: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -955,17 +978,22 @@ packages: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - peek-readable@5.4.2: resolution: {integrity: sha512-peBp3qZyuS6cNIJ2akRNG1uo1WJ1d0wTxg/fxMdZ0BqCVhx242bSFHM9eNqflfJVS9SsgkzgT/1UgnsurBOTMg==} engines: {node: '>=14.16'} + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + pngjs@7.0.0: resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} engines: {node: '>=14.19.0'} @@ -1027,15 +1055,16 @@ packages: resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} engines: {node: '>=12'} - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - restore-cursor@5.1.0: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} + rollup-plugin-typescript2@0.36.0: + resolution: {integrity: sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw==} + peerDependencies: + rollup: '>=1.26.3' + typescript: '>=2.4.0' + rollup@4.48.1: resolution: {integrity: sha512-jVG20NvbhTYDkGAty2/Yh7HK6/q3DGSRH4o8ALKGArmMuaauM9kLfoMZ+WliPwA5+JHr2lTn3g557FxBV87ifg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -1044,6 +1073,10 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + semver@7.7.2: resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} @@ -1126,10 +1159,6 @@ packages: stubborn-fs@1.2.5: resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - terser@5.43.1: resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} engines: {node: '>=10'} @@ -1359,14 +1388,10 @@ snapshots: optionalDependencies: rollup: 4.48.1 - '@rollup/plugin-typescript@12.1.4(rollup@4.48.1)(tslib@2.8.1)(typescript@5.9.2)': + '@rollup/pluginutils@4.2.1': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.48.1) - resolve: 1.22.10 - typescript: 5.9.2 - optionalDependencies: - rollup: 4.48.1 - tslib: 2.8.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 '@rollup/pluginutils@5.2.0(rollup@4.48.1)': dependencies: @@ -1733,6 +1758,17 @@ snapshots: strtok3: 7.1.1 token-types: 5.0.1 + find-cache-dir@3.3.2: + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + follow-redirects@1.15.11: {} form-data@4.0.4: @@ -1743,6 +1779,12 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + fs-extra@11.3.1: dependencies: graceful-fs: 4.2.11 @@ -1815,10 +1857,6 @@ snapshots: is-arrayish@0.3.2: {} - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - is-fullwidth-code-point@3.0.0: {} is-in-ci@1.0.0: {} @@ -1862,6 +1900,10 @@ snapshots: dependencies: package-json: 10.0.1 + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + log-symbols@6.0.0: dependencies: chalk: 5.6.0 @@ -1873,6 +1915,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + math-intrinsics@1.1.0: {} mime-db@1.52.0: {} @@ -1906,6 +1952,16 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.1.0 + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-try@2.2.0: {} + package-json@10.0.1: dependencies: ky: 1.9.0 @@ -1915,16 +1971,22 @@ snapshots: parse-ms@4.0.0: {} + path-exists@4.0.0: {} + path-key@3.1.1: {} path-key@4.0.0: {} - path-parse@1.0.7: {} - peek-readable@5.4.2: {} + picomatch@2.3.1: {} + picomatch@4.0.3: {} + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + pngjs@7.0.0: {} prettier@3.6.2: {} @@ -1985,17 +2047,21 @@ snapshots: dependencies: rc: 1.2.8 - resolve@1.22.10: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@5.1.0: dependencies: onetime: 7.0.0 signal-exit: 4.1.0 + rollup-plugin-typescript2@0.36.0(rollup@4.48.1)(typescript@5.9.2): + dependencies: + '@rollup/pluginutils': 4.2.1 + find-cache-dir: 3.3.2 + fs-extra: 10.1.0 + rollup: 4.48.1 + semver: 7.7.2 + tslib: 2.8.1 + typescript: 5.9.2 + rollup@4.48.1: dependencies: '@types/estree': 1.0.8 @@ -2024,6 +2090,8 @@ snapshots: safe-buffer@5.2.1: {} + semver@6.3.1: {} + semver@7.7.2: {} serialize-javascript@6.0.2: @@ -2122,8 +2190,6 @@ snapshots: stubborn-fs@1.2.5: {} - supports-preserve-symlinks-flag@1.0.0: {} - terser@5.43.1: dependencies: '@jridgewell/source-map': 0.3.11 diff --git a/rollup.config.js b/rollup.config.js index 19e4eda..b0ebcdf 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,7 +1,7 @@ import path from "path"; import fs from "fs"; import appRootPath from "app-root-path"; -import typescript from "@rollup/plugin-typescript"; +import typescript from "rollup-plugin-typescript2"; import alias from "@rollup/plugin-alias"; import commonjs from "@rollup/plugin-commonjs"; import json from "@rollup/plugin-json"; @@ -45,10 +45,21 @@ export default { warn(warning); }, plugins: [ - json(), typescript({ - tsconfig: "tsconfig.json", + tsconfig: "./tsconfig.json", + sourceMap: !isProduction, + inlineSources: !isProduction, + noEmitOnError: false, + compilerOptions: { + target: "es2020", + module: "esnext", + moduleResolution: "node", + esModuleInterop: true, + allowSyntheticDefaultImports: true, + strict: false, + }, }), + json(), commonjs(), replace({ "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV),