fix: don't unshift(bin) to args when running from deno (#834)

closes #833
This commit is contained in:
Amr Bashir
2024-10-28 12:41:03 +03:00
committed by GitHub
parent 1c529e33a1
commit 380bc0713b
4 changed files with 43 additions and 20 deletions

View File

@@ -0,0 +1,6 @@
---
"create-tauri-app": "patch"
"create-tauri-app-js": "patch"
---
Fix running `create-tauri-app` using deno.

View File

@@ -56,6 +56,12 @@ yarn create tauri-app
pnpm create tauri-app
```
### Deno
```bash
deno run -A npm:create-tauri-app
```
### Bun:
```bash
@@ -136,23 +142,25 @@ You can also directly specify the project name, package manager and the template
```bash
# curl
sh <(curl https://create.tauri.app/sh) my-tauri-app --template svelte --manager pnpm
sh <(curl https://create.tauri.app/sh) my-tauri-app --template svelte
# wget
sh <(wget https://create.tauri.app/sh) my-tauri-app --template svelte --manager pnpm
sh <(wget https://create.tauri.app/sh) my-tauri-app --template svelte
# powershell
$env:CTA_ARGS="--template svelte --manager pnpm";irm https://create.tauri.app/ps | iex
$env:CTA_ARGS="--template svelte";irm https://create.tauri.app/ps | iex
# cargo
cargo create-tauri-app my-tauri-app --template svelte --manager pnpm
cargo create-tauri-app my-tauri-app --template svelte
# npm 6.x
npm create tauri-app@latest my-tauri-app --template svelte --manager pnpm
npm create tauri-app@latest my-tauri-app --template svelte
# npm 7+, extra double-dash is needed:
npm create tauri-app@latest my-tauri-app -- --template svelte --manager pnpm
npm create tauri-app@latest my-tauri-app -- --template svelte
# yarn
yarn create tauri-app my-tauri-app --template svelte --manager pnpm
yarn create tauri-app my-tauri-app --template svelte
# pnpm
pnpm create tauri-app my-tauri-app --template svelte --manager pnpm
pnpm create tauri-app my-tauri-app --template svelte
# deno
deno run -A npm:create-tauri-app --template svelte
# Bun
bunx create-tauri-app my-tauri-app --template svelte --manager bun
bunx create-tauri-app my-tauri-app --template svelte
```
Currently supported template presets include:
@@ -165,6 +173,8 @@ Currently supported template presets include:
- `svelte-ts`
- `react`
- `react-ts`
- `preact`
- `preact-ts`
- `solid`
- `solid-ts`
- `angular`

View File

@@ -29,6 +29,12 @@ yarn create tauri-app
pnpm create tauri-app
```
### Deno
```bash
deno run -A npm:create-tauri-app
```
## Bun:
```bash
@@ -41,15 +47,15 @@ You can also directly specify the project name, package manager and the template
```bash
# npm 6.x
npm create tauri-app@latest my-tauri-app --template svelte --manager pnpm
npm create tauri-app@latest my-tauri-app --template svelte
# npm 7+, extra double-dash is needed:
npm create tauri-app@latest my-tauri-app -- --template svelte --manager pnpm
npm create tauri-app@latest my-tauri-app -- --template svelte
# yarn
yarn create tauri-app my-tauri-app --template svelte --manager pnpm
yarn create tauri-app my-tauri-app --template svelte
# pnpm
pnpm create tauri-app my-tauri-app --template svelte --manager pnpm
pnpm create tauri-app my-tauri-app --template svelte
# Bun
bunx create-tauri-app my-tauri-app --template svelte --manager bun
bunx create-tauri-app my-tauri-app --template svelte
```
Currently supported template presets include:
@@ -62,6 +68,8 @@ Currently supported template presets include:
- `svelte-ts`
- `react`
- `react-ts`
- `preact`
- `preact-ts`
- `solid`
- `solid-ts`
- `angular`

View File

@@ -20,7 +20,7 @@ if (globalThis.navigator?.userAgent?.includes("Deno")) {
}
// Even if started by a package manager, the binary will be NodeJS or Bun.
// Some distribution still use "nodejs" as the binary name.
if (binStem.match(/(nodejs|node|bun)-*([0-9]*)*$/g)) {
else if (binStem.match(/(nodejs|node|bun)-*([0-9]*)*$/g)) {
const managerStem = process.env.npm_execpath
? path.parse(process.env.npm_execpath).name.toLowerCase()
: null;
@@ -52,9 +52,8 @@ if (binStem.match(/(nodejs|node|bun)-*([0-9]*)*$/g)) {
}
// adapted from https://github.com/vitejs/vite/blob/34826aae015ed16dc9b9096c0f778154ca6981a6/packages/create-vite/src/index.ts#L513
function pkgManagerFromUserAgent(userAgent) {
if (!userAgent) return undefined;
return userAgent.split(" ")[0]?.split("/")[0];
}
const pkgManager = pkgManagerFromUserAgent(process.env.npm_config_user_agent);
const userAgent =
process.env.npm_config_user_agent ?? globalThis.navigator?.userAgent;
const pkgManager = userAgent?.split(" ")[0]?.split("/")[0].toLocaleLowerCase();
cli.run(args, binName, pkgManager);