diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aa4dcf4d0..638bd5a5b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,18 +31,24 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '22' + node-version: '20.12.2' + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 10.11.0 - name: Install dependencies - run: npm install + run: pnpm install env: npm_config_platform: win32 npm_config_arch: ${{ matrix.arch }} - name: Install Node Runtime - run: npm run installRuntime:win:${{ matrix.arch }} + run: pnpm run installRuntime:win:${{ matrix.arch }} - name: Install Sharp - run: npm install sharp --build-from-source + run: pnpm install sharp + env: + npm_config_build_from_source: true - name: Build Windows - run: npm run build:win:${{ matrix.arch }} + run: pnpm run build:win:${{ matrix.arch }} env: VITE_GITHUB_CLIENT_ID: ${{ secrets.DC_GITHUB_CLIENT_ID }} VITE_GITHUB_CLIENT_SECRET: ${{ secrets.DC_GITHUB_CLIENT_SECRET }} @@ -70,18 +76,24 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '22' + node-version: '20.12.2' + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 10.11.0 - name: Install dependencies - run: npm install + run: pnpm install env: npm_config_platform: linux npm_config_arch: ${{ matrix.arch }} - name: Install Node Runtime - run: npm run installRuntime:linux:${{ matrix.arch }} + run: pnpm run installRuntime:linux:${{ matrix.arch }} - name: Install Sharp - run: npm install --cpu=wasm32 sharp + run: pnpm install sharp + env: + npm_config_cpu: wasm32 - name: Build Linux - run: npm run build:linux:${{ matrix.arch }} + run: pnpm run build:linux:${{ matrix.arch }} env: VITE_GITHUB_CLIENT_ID: ${{ secrets.DC_GITHUB_CLIENT_ID }} VITE_GITHUB_CLIENT_SECRET: ${{ secrets.DC_GITHUB_CLIENT_SECRET }} @@ -110,18 +122,25 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '22' + node-version: '20.12.2' + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 10.11.0 - name: Install dependencies - run: npm install + run: pnpm install env: npm_config_platform: darwin npm_config_arch: ${{ matrix.arch }} - name: Install Node Runtime - run: npm run installRuntime:mac:${{ matrix.arch }} + run: pnpm run installRuntime:mac:${{ matrix.arch }} - name: Install Sharp - run: npm i --cpu=${{ matrix.arch }} --os=darwin sharp + run: pnpm install sharp + env: + npm_config_cpu: ${{ matrix.arch }} + npm_config_os: darwin - name: Build Mac - run: npm run build:mac:${{ matrix.arch }} + run: pnpm run build:mac:${{ matrix.arch }} env: CSC_LINK: ${{ secrets.DEEPCHAT_CSC_LINK }} CSC_KEY_PASSWORD: ${{ secrets.DEEPCHAT_CSC_KEY_PASS }} diff --git a/package.json b/package.json index 584318682..55d37cca3 100644 --- a/package.json +++ b/package.json @@ -5,28 +5,34 @@ "main": "./out/main/index.js", "author": "ThinkInAIXYZ", "type": "module", + "engines": { + "node": ">=20.12.2", + "pnpm": ">=10.11.0" + }, + "packageManager": "pnpm@10.11.0", "scripts": { + "preinstall": "npx only-allow pnpm", "format": "prettier --write .", "lint": "eslint --cache .", "typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false", "typecheck:web": "vue-tsc --noEmit -p tsconfig.web.json --composite false", - "typecheck": "npm run typecheck:node && npm run typecheck:web", + "typecheck": "pnpm run typecheck:node && pnpm run typecheck:web", "start": "electron-vite preview", "dev": "electron-vite dev --watch", "dev:inspect": "electron-vite dev --watch --inspect=9229", "dev:linux": "electron-vite dev --watch --noSandbox", - "build": "npm run typecheck && electron-vite build", + "build": "pnpm run typecheck && electron-vite build", "postinstall": "node scripts/postinstall.js && electron-builder install-app-deps", - "build:unpack": "npm run build && electron-builder --dir", - "build:win": "npm run build && electron-builder --win", - "build:win:x64": "npm run build && electron-builder --win --x64", - "build:win:arm64": "npm run build && electron-builder --win --arm64", - "build:mac": "npm run build && electron-builder --mac", - "build:mac:arm64": "npm run build && electron-builder --mac --arm64", - "build:mac:x64": "npm run build && electron-builder -c electron-builder-macx64.yml --mac --x64 ", - "build:linux": "npm run build && electron-builder --linux", - "build:linux:x64": "npm run build && electron-builder --linux --x64", - "build:linux:arm64": "npm run build && electron-builder --linux --arm64", + "build:unpack": "pnpm run build && electron-builder --dir", + "build:win": "pnpm run build && electron-builder --win", + "build:win:x64": "pnpm run build && electron-builder --win --x64", + "build:win:arm64": "pnpm run build && electron-builder --win --arm64", + "build:mac": "pnpm run build && electron-builder --mac", + "build:mac:arm64": "pnpm run build && electron-builder --mac --arm64", + "build:mac:x64": "pnpm run build && electron-builder -c electron-builder-macx64.yml --mac --x64 ", + "build:linux": "pnpm run build && electron-builder --linux", + "build:linux:x64": "pnpm run build && electron-builder --linux --x64", + "build:linux:arm64": "pnpm run build && electron-builder --linux --arm64", "afterSign": "scripts/notarize.js", "installRuntime": "tiny-runtime-injector -d runtime/node -n v22.15.0 --no-docs --no-dev --no-sourcemaps", "installRuntime:win:x64": "tiny-runtime-injector -d runtime/node -n v22.15.0 -a x64 -p win32 --no-docs --no-dev --no-sourcemaps",