From d2ee632eac05b802cdc31127a4ca5bb87331aa79 Mon Sep 17 00:00:00 2001 From: OJ Kwon <1210596+kwonoj@users.noreply.github.com> Date: Tue, 11 Jul 2023 09:11:52 -0700 Subject: [PATCH] feat(turbopack): support native webp --- .github/workflows/build_and_deploy.yml | 2 +- packages/next-swc/crates/napi/Cargo.toml | 1 + packages/next-swc/crates/next-core/Cargo.toml | 2 ++ packages/next-swc/package.json | 10 +++++----- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build_and_deploy.yml b/.github/workflows/build_and_deploy.yml index 927c4c90b46a1..4b292c4e8ce53 100644 --- a/.github/workflows/build_and_deploy.yml +++ b/.github/workflows/build_and_deploy.yml @@ -143,7 +143,7 @@ jobs: rustup target add aarch64-unknown-linux-gnu && npm i -g "@napi-rs/cli@${NAPI_CLI_VERSION}" "turbo@${TURBO_VERSION}" && if [ ! -f $(dirname $(which yarn))/pnpm ]; then ln -s $(which yarn) $(dirname $(which yarn))/pnpm;fi && export CC_aarch64_unknown_linux_gnu=/usr/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc && - turbo run build-native-release --remote-cache-timeout 90 --summarize -- --target aarch64-unknown-linux-gnu && + turbo run build-native-release --remote-cache-timeout 90 --summarize -- --target aarch64-unknown-linux-gnu --features plugin,rustls-tls,tracing/release_max_level_info && llvm-strip -x packages/next-swc/native/next-swc.*.node - host: ubuntu-latest target: 'aarch64-unknown-linux-musl' diff --git a/packages/next-swc/crates/napi/Cargo.toml b/packages/next-swc/crates/napi/Cargo.toml index fa2bca9810ab1..922fdd46cb44d 100644 --- a/packages/next-swc/crates/napi/Cargo.toml +++ b/packages/next-swc/crates/napi/Cargo.toml @@ -20,6 +20,7 @@ sentry_rustls = ["sentry", "sentry/rustls", "rustls-tls"] native-tls = ["next-dev/native-tls"] rustls-tls = ["next-dev/rustls-tls"] serializable = ["next-dev/serializable"] +image-webp = ["next-core/image-webp"] # Enable dhat profiling allocator for heap profiling. __internal_dhat-heap = ["dhat"] diff --git a/packages/next-swc/crates/next-core/Cargo.toml b/packages/next-swc/crates/next-core/Cargo.toml index 256c3659257ea..96d1e848ca324 100644 --- a/packages/next-swc/crates/next-core/Cargo.toml +++ b/packages/next-swc/crates/next-core/Cargo.toml @@ -68,6 +68,8 @@ next-font-local = [] native-tls = ["turbopack-binding/__turbo_tasks_fetch_native-tls"] rustls-tls = ["turbopack-binding/__turbo_tasks_fetch_rustls-tls"] plugin = ["turbopack-binding/__swc_core_binding_napi_plugin"] +image-webp = ["turbopack-binding/__turbopack_image_webp"] + # enable "HMR" for embedded assets dynamic_embed_contents = [ "turbopack-binding/__turbo_tasks_fs_dynamic_embed_contents", diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index 8018eb0e9e9ee..4271a2d3082e1 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -4,11 +4,11 @@ "private": true, "scripts": { "clean": "node ../../scripts/rm.mjs native", - "build-native": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --features plugin,rustls-tls --js false native", - "build-native-release": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --release --features plugin,rustls-tls,tracing/release_max_level_info --js false native", - "build-native-no-plugin": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --js false native", - "build-native-no-plugin-woa": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --cargo-flags=--no-default-features --features native-tls --js false native", - "build-native-no-plugin-woa-release": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --release --cargo-flags=--no-default-features --features native-tls,tracing/release_max_level_info --js false native", + "build-native": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --features plugin,rustls-tls,image-webp --js false native", + "build-native-release": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --release --features plugin,rustls-tls,image-webp,tracing/release_max_level_info --js false native", + "build-native-no-plugin": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --features image-webp --js false native", + "build-native-no-plugin-woa": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --cargo-flags=--no-default-features --features native-tls,image-webp --js false native", + "build-native-no-plugin-woa-release": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --release --cargo-flags=--no-default-features --features native-tls,image-webp,tracing/release_max_level_info --js false native", "build-wasm": "wasm-pack build crates/wasm --scope=next", "cache-build-native": "echo $(ls native)", "rust-check": "cd ../../; cargo fmt -- --check && cargo clippy --all -- -D warnings -A deprecated && cargo check -p next-dev --no-default-features --features cli,custom_allocator,rustls-tls,serializable && rm -rf target",