Skip to content

Commit 5655ae8

Browse files
committed
build(cargo): resolve feature conflicts
1 parent 3252dea commit 5655ae8

File tree

5 files changed

+51
-8
lines changed

5 files changed

+51
-8
lines changed

packages/next-swc/Cargo.lock

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/next-swc/crates/core/Cargo.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,16 @@ swc_emotion = {path="../emotion"}
2121
styled_components = {path="../styled_components"}
2222
styled_jsx = {path="../styled_jsx"}
2323
modularize_imports = {path="../modularize_imports"}
24-
swc = { version = "0.172.1", features = ["plugin"] }
24+
swc = { version = "0.172.1" }
2525
swc_atoms = "0.2.11"
2626
swc_common = { version = "0.17.25", features = ["concurrent", "sourcemap"] }
2727
swc_ecma_loader = { version = "0.29.1", features = ["node", "lru"] }
2828
swc_ecmascript = { version = "0.150.0", features = ["codegen", "minifier", "optimization", "parser", "react", "transforms", "typescript", "utils", "visit"] }
29+
swc_plugin_runner = { version = "0.53.1", optional = true, default-features = false }
2930
swc_cached = "0.1.1"
30-
swc_plugin_runner = { version = "0.53.1", features = ["filesystem_cache"] }
3131
tracing = { version = "0.1.32", features = ["release_max_level_info"] }
32+
wasmer = {version = "2.2.1", optional = true, default-features = false}
33+
wasmer-wasi = {version = "2.2.1", optional = true, default-features = false}
3234

3335
[dev-dependencies]
3436
swc_ecma_transforms_testing = "0.82.0"

packages/next-swc/crates/napi/Cargo.toml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@ publish = false
77
[lib]
88
crate-type = ["cdylib", "rlib"]
99

10+
[features]
11+
# Instead of enabling all the plugin-related features by default, make it explicitly specified
12+
# when build (i.e napi --build --features plugin), same for the wasm as well.
13+
# this is due to some of transitive dependencies have features cannot be enabled at the same time
14+
# (i.e wasmer/default vs wasmer/js-default) while cargo merges all the features at once.
15+
plugin = [
16+
"swc/plugin",
17+
"swc_plugin_runner/default",
18+
"wasmer/default",
19+
"wasmer-wasi/default"
20+
]
21+
1022
[dependencies]
1123
anyhow = "1.0"
1224
backtrace = "0.3"
@@ -17,20 +29,20 @@ next-swc = {version = "0.0.0", path = "../core"}
1729
once_cell = "1.8.0"
1830
serde = "1"
1931
serde_json = "1"
20-
swc = { version = "0.172.1", features = ["plugin"] }
32+
swc = { version = "0.172.1" }
2133
swc_atoms = "0.2.11"
2234
swc_bundler = { version = "0.140.0", features = ["concurrent"] }
2335
swc_common = { version = "0.17.25", features = ["concurrent", "sourcemap"] }
2436
swc_ecma_loader = { version = "0.29.1", features = ["node", "lru"] }
2537
swc_ecmascript = { version = "0.150.0", features = ["codegen", "minifier", "optimization", "parser", "react", "transforms", "typescript", "utils", "visit"] }
26-
swc_plugin_runner = { version = "0.53.1", features = ["filesystem_cache"] }
38+
swc_plugin_runner = { version = "0.53.1", optional = true, default-features = false }
2739
swc_node_base = "0.5.2"
2840
tracing = { version = "0.1.32", features = ["release_max_level_info"] }
2941
tracing-futures = "0.2.5"
3042
tracing-subscriber = "0.3.9"
3143
tracing-chrome = "0.5.0"
32-
wasmer = {version = "2.2.1"}
33-
wasmer-wasi = {version = "2.2.1"}
44+
wasmer = {version = "2.2.1", optional = true, default-features = false}
45+
wasmer-wasi = {version = "2.2.1", optional = true, default-features = false}
3446

3547
[build-dependencies]
3648
napi-build = "1"

packages/next-swc/crates/wasm/Cargo.toml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@ version = "0.0.0"
77
[lib]
88
crate-type = ["cdylib"]
99

10+
[features]
11+
plugin = [
12+
"swc/plugin",
13+
"swc_plugin_runner/memory_cache",
14+
"wasmer/js-default",
15+
"wasmer-wasi/js-default",
16+
"getrandom/js"
17+
]
18+
1019
[dependencies]
1120
anyhow = "1.0.42"
1221
console_error_panic_hook = "0.1.6"
@@ -16,9 +25,13 @@ parking_lot_core = "=0.8.0"
1625
path-clean = "0.1"
1726
serde = {version = "1", features = ["derive"]}
1827
serde_json = "1"
19-
swc = "0.172.1"
28+
swc = { version = "0.172.1" }
2029
swc_common = { version = "0.17.25", features = ["concurrent", "sourcemap"] }
2130
swc_ecmascript = { version = "0.150.0", features = ["codegen", "minifier", "optimization", "parser", "react", "transforms", "typescript", "utils", "visit"] }
31+
swc_plugin_runner = { version = "0.53.1", default-features = false, optional = true }
2232
tracing = { version = "0.1.32", features = ["release_max_level_off"] }
2333
wasm-bindgen = {version = "0.2", features = ["serde-serialize"]}
2434
wasm-bindgen-futures = "0.4.8"
35+
wasmer = {version = "2.2.1", optional = true, default-features = false}
36+
wasmer-wasi = {version = "2.2.1", optional = true, default-features = false}
37+
getrandom = { version = "0.2.5", optional = true, default-features = false }

packages/next-swc/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "12.1.7-canary.3",
44
"private": true,
55
"scripts": {
6-
"build-native": "napi build --platform --cargo-name next_swc_napi native",
6+
"build-native": "napi build --platform -p next-swc-napi --cargo-name next_swc_napi native --features plugin",
77
"build-wasm": "wasm-pack build crates/wasm --scope=next"
88
},
99
"napi": {

0 commit comments

Comments
 (0)