From 5a149c6347ee967b7a0b7df9976b6a196e0cdd88 Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Tue, 16 Dec 2025 15:36:53 +0100 Subject: [PATCH] =?UTF-8?q?chore:=20supprimer=20le=20workflow=20de=20d?= =?UTF-8?q?=C3=A9ploiement=20NuxtHub=20et=20mettre=20=C3=A0=20jour=20la=20?= =?UTF-8?q?configuration=20pour=20Nitro=20Cloudflare?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/nuxthub.yml | 34 ---------------------------------- .gitignore | 3 +++ bun.lock | 11 ++++++++++- nuxt.config.ts | 17 +++++++++-------- package.json | 15 ++++++++------- wrangler.jsonc | 25 +++++++++++++++++++++++++ 6 files changed, 55 insertions(+), 50 deletions(-) delete mode 100644 .github/workflows/nuxthub.yml create mode 100644 wrangler.jsonc diff --git a/.github/workflows/nuxthub.yml b/.github/workflows/nuxthub.yml deleted file mode 100644 index 4f0e29c..0000000 --- a/.github/workflows/nuxthub.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Deploy to NuxtHub -on: push - -jobs: - deploy: - name: "Deploy to NuxtHub" - runs-on: ubuntu-latest - permissions: - contents: read - id-token: write - - steps: - - uses: actions/checkout@v4 - - - name: Install Bun - uses: oven-sh/setup-bun@v2 - with: - bun-version: latest - - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 - - - name: Install dependencies - run: bun install - - - name: Ensure NuxtHub module is installed - run: bunx nuxthub@latest ensure - - - name: Build & Deploy to NuxtHub - uses: nuxt-hub/action@v2 - with: - project-key: artmcp-fg83 diff --git a/.gitignore b/.gitignore index d76d0e9..f8f931f 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,6 @@ logs .env .env.* !.env.example + +.dev.vars* +!.dev.vars.example diff --git a/bun.lock b/bun.lock index b9f9ca9..d7373d3 100644 --- a/bun.lock +++ b/bun.lock @@ -13,6 +13,7 @@ "better-sqlite3": "12.5.0", "drizzle-kit": "^0.31.8", "drizzle-orm": "^0.45.1", + "nitro-cloudflare-dev": "^0.2.2", "nuxt": "4.2.2", "nuxt-studio": "1.0.0-alpha.4", "vue": "3.5.25", @@ -24,7 +25,7 @@ "eslint": "9.39.2", "typescript": "5.9.3", "vue-tsc": "3.1.8", - "wrangler": "4.55.0", + "wrangler": "^4.55.0", }, }, }, @@ -817,6 +818,8 @@ "autoprefixer": ["autoprefixer@10.4.22", "", { "dependencies": { "browserslist": "^4.27.0", "caniuse-lite": "^1.0.30001754", "fraction.js": "^5.3.4", "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg=="], + "aws4fetch": ["aws4fetch@1.0.18", "", {}, "sha512-3Cf+YaUl07p24MoQ46rFwulAmiyCwH2+1zw1ZyPAX5OtJ34Hh185DwB8y/qRLb6cYYYtSFJ9pthyLc0MD4e8sQ=="], + "b4a": ["b4a@1.7.3", "", { "peerDependencies": { "react-native-b4a": "*" }, "optionalPeers": ["react-native-b4a"] }, "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q=="], "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], @@ -1667,6 +1670,8 @@ "negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], + "nitro-cloudflare-dev": ["nitro-cloudflare-dev@0.2.2", "", { "dependencies": { "consola": "^3.4.0", "mlly": "^1.7.4", "pkg-types": "^2.1.0" } }, "sha512-aZfNTVdgXPQeAmXW0Tw8hm3usAHr4qVG4Bg3WhHBGeZYuXr9OyT04Ztb+STkMzhyaXvfMHViAaPUPg06iAYqag=="], + "nitropack": ["nitropack@2.12.9", "", { "dependencies": { "@cloudflare/kv-asset-handler": "^0.4.0", "@rollup/plugin-alias": "^5.1.1", "@rollup/plugin-commonjs": "^28.0.9", "@rollup/plugin-inject": "^5.0.5", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-replace": "^6.0.2", "@rollup/plugin-terser": "^0.4.4", "@vercel/nft": "^0.30.3", "archiver": "^7.0.1", "c12": "^3.3.1", "chokidar": "^4.0.3", "citty": "^0.1.6", "compatx": "^0.2.0", "confbox": "^0.2.2", "consola": "^3.4.2", "cookie-es": "^2.0.0", "croner": "^9.1.0", "crossws": "^0.3.5", "db0": "^0.3.4", "defu": "^6.1.4", "destr": "^2.0.5", "dot-prop": "^10.1.0", "esbuild": "^0.25.11", "escape-string-regexp": "^5.0.0", "etag": "^1.8.1", "exsolve": "^1.0.7", "globby": "^15.0.0", "gzip-size": "^7.0.0", "h3": "^1.15.4", "hookable": "^5.5.3", "httpxy": "^0.1.7", "ioredis": "^5.8.2", "jiti": "^2.6.1", "klona": "^2.0.6", "knitwork": "^1.2.0", "listhen": "^1.9.0", "magic-string": "^0.30.21", "magicast": "^0.5.0", "mime": "^4.1.0", "mlly": "^1.8.0", "node-fetch-native": "^1.6.7", "node-mock-http": "^1.0.3", "ofetch": "^1.5.0", "ohash": "^2.0.11", "pathe": "^2.0.3", "perfect-debounce": "^2.0.0", "pkg-types": "^2.3.0", "pretty-bytes": "^7.1.0", "radix3": "^1.1.2", "rollup": "^4.52.5", "rollup-plugin-visualizer": "^6.0.5", "scule": "^1.3.0", "semver": "^7.7.3", "serve-placeholder": "^2.0.2", "serve-static": "^2.2.0", "source-map": "^0.7.6", "std-env": "^3.10.0", "ufo": "^1.6.1", "ultrahtml": "^1.6.0", "uncrypto": "^0.1.3", "unctx": "^2.4.1", "unenv": "^2.0.0-rc.23", "unimport": "^5.5.0", "unplugin-utils": "^0.3.1", "unstorage": "^1.17.1", "untyped": "^2.0.0", "unwasm": "^0.3.11", "youch": "^4.1.0-beta.11", "youch-core": "^0.3.3" }, "peerDependencies": { "xml2js": "^0.6.2" }, "optionalPeers": ["xml2js"], "bin": { "nitro": "dist/cli/index.mjs", "nitropack": "dist/cli/index.mjs" } }, "sha512-t6qqNBn2UDGMWogQuORjbL2UPevB8PvIPsPHmqvWpeGOlPr4P8Oc5oA8t3wFwGmaolM2M/s2SwT23nx9yARmOg=="], "node-abi": ["node-abi@3.80.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-LyPuZJcI9HVwzXK1GPxWNzrr+vr8Hp/3UqlmWxxh8p54U1ZbclOqbSog9lWHaCX+dBaiGi6n/hIX+mKu74GmPA=="], @@ -2319,6 +2324,10 @@ "xml-name-validator": ["xml-name-validator@4.0.0", "", {}, "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw=="], + "xml2js": ["xml2js@0.6.2", "", { "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA=="], + + "xmlbuilder": ["xmlbuilder@11.0.1", "", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="], + "xmlhttprequest-ssl": ["xmlhttprequest-ssl@2.1.2", "", {}, "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ=="], "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], diff --git a/nuxt.config.ts b/nuxt.config.ts index 2927be0..512050b 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -1,12 +1,6 @@ export default defineNuxtConfig({ - modules: [ - '@nuxthub/core', - '@nuxt/eslint', - '@nuxt/content', - '@nuxtjs/mcp-toolkit', - 'nuxt-studio' - ], + modules: ["nitro-cloudflare-dev"], devtools: { enabled: true, @@ -41,6 +35,13 @@ export default defineNuxtConfig({ nitro: { experimental: { openAPI: true + }, + + preset: "cloudflare_module", + + cloudflare: { + deployConfig: true, + nodeCompat: true } }, @@ -72,4 +73,4 @@ export default defineNuxtConfig({ branch: 'master' } } -}) +}) \ No newline at end of file diff --git a/package.json b/package.json index bfa1729..9df21d3 100644 --- a/package.json +++ b/package.json @@ -3,13 +3,13 @@ "private": true, "type": "module", "scripts": { - "build": "nuxt build", - "dev": "nuxt dev", - "generate": "nuxt generate", - "preview": "npx nuxthub preview", - "deploy": "npx nuxthub deploy", + "build": "nuxi build --preset cloudflare_module", + "dev": "nuxi dev", + "preview": "bun run build && wrangler dev", "postinstall": "nuxt prepare", - "lint": "eslint ." + "lint": "eslint .", + "deploy": "bun run build && wrangler deploy", + "cf-typegen": "wrangler types" }, "dependencies": { "@libsql/client": "^0.15.15", @@ -20,6 +20,7 @@ "better-sqlite3": "12.5.0", "drizzle-kit": "^0.31.8", "drizzle-orm": "^0.45.1", + "nitro-cloudflare-dev": "^0.2.2", "nuxt": "4.2.2", "nuxt-studio": "1.0.0-alpha.4", "vue": "3.5.25", @@ -33,4 +34,4 @@ "vue-tsc": "3.1.8", "wrangler": "4.55.0" } -} +} \ No newline at end of file diff --git a/wrangler.jsonc b/wrangler.jsonc new file mode 100644 index 0000000..bbcc979 --- /dev/null +++ b/wrangler.jsonc @@ -0,0 +1,25 @@ +{ + "$schema": "node_modules/wrangler/config-schema.json", + "name": "artapi", + "compatibility_date": "2025-12-13", + "observability": { + "enabled": true + }, + "main": "./.output/server/index.mjs", + "assets": { + "binding": "ASSETS", + "directory": "./.output/public/" + }, + "d1_databases": [ + { + "binding": "DB", + "database_name": "artapi" + } + ], + "kv_namespaces": [ + { + "binding": "CACHE", + "id": "artapi-cache" + } + ] +} \ No newline at end of file