diff --git a/Cargo.lock b/Cargo.lock index bd48eb2311bf..bdf3f0a26914 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -103,17 +103,6 @@ version = "1.0.0-beta.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f1f8f5a6f3d50d89e3797d7593a50f96bb2aaa20ca0cc7be1fb673232c91d72" -[[package]] -name = "arca" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f915ddd863ef73f11c10c75170e86db1d4f539689bc6bfb9ce25d6528d6fe83" -dependencies = [ - "clean-path", - "path-slash", - "radix_trie", -] - [[package]] name = "arrayref" version = "0.3.7" @@ -270,21 +259,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - [[package]] name = "bitflags" version = "1.3.2" @@ -451,16 +425,9 @@ dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", - "serde", "windows-targets 0.52.0", ] -[[package]] -name = "clean-path" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa6b4b263a5d737e9bf6b7c09b72c41a5480aec4d7219af827f6564e950b6a5" - [[package]] name = "color-backtrace" version = "0.6.1" @@ -477,15 +444,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7439becb5fafc780b6f4de382b1a7a3e70234afe783854a4702ee8adbb838609" -[[package]] -name = "concurrent_lru" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7feb5cb312f774e8a24540e27206db4e890f7d488563671d24a16389cf4c2e4e" -dependencies = [ - "once_cell", -] - [[package]] name = "console" version = "0.15.8" @@ -819,7 +777,6 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", "syn 2.0.63", ] @@ -905,7 +862,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", - "serde", ] [[package]] @@ -1020,12 +976,6 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" -[[package]] -name = "endian-type" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" - [[package]] name = "enum-iterator" version = "0.7.0" @@ -1100,17 +1050,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" -[[package]] -name = "fancy-regex" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2" -dependencies = [ - "bit-set", - "regex-automata 0.4.4", - "regex-syntax 0.8.3", -] - [[package]] name = "fast-glob" version = "0.4.0" @@ -2182,15 +2121,6 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" -[[package]] -name = "nibble_vec" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" -dependencies = [ - "smallvec", -] - [[package]] name = "nom" version = "7.1.3" @@ -2424,12 +2354,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef" -[[package]] -name = "path-slash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" - [[package]] name = "pathdiff" version = "0.2.1" @@ -2622,26 +2546,6 @@ dependencies = [ "syn 2.0.63", ] -[[package]] -name = "pnp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46770cee76a618023fea15411d0449dd066dc232cc17e4562f154da215f27af7" -dependencies = [ - "arca", - "byteorder", - "concurrent_lru", - "fancy-regex", - "lazy_static", - "miniz_oxide", - "pathdiff", - "regex", - "serde", - "serde_json", - "serde_with", - "thiserror", -] - [[package]] name = "portable-atomic" version = "1.3.3" @@ -2798,16 +2702,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426" -[[package]] -name = "radix_trie" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" -dependencies = [ - "endian-type", - "nibble_vec", -] - [[package]] name = "rand" version = "0.8.5" @@ -4055,9 +3949,9 @@ dependencies = [ [[package]] name = "rspack_resolver" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8d0561f259e68831d67b50017eea1a03955fb37332d8e1c3a5a9f7662c036c" +checksum = "f26478f9e708a84a3122e7d1fffea1271ac4bd61cbb5722ee41d32e29ac714f7" dependencies = [ "cfg-if", "dashmap 6.0.1", @@ -4065,7 +3959,6 @@ dependencies = [ "indexmap 2.2.6", "json-strip-comments", "once_cell", - "pnp", "rustc-hash 2.0.0", "serde", "serde_json", @@ -4352,36 +4245,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_with" -version = "3.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" -dependencies = [ - "base64 0.22.1", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.2.6", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" -dependencies = [ - "darling 0.20.6", - "proc-macro2", - "quote", - "syn 2.0.63", -] - [[package]] name = "serde_yaml" version = "0.9.34+deprecated" diff --git a/crates/rspack_core/Cargo.toml b/crates/rspack_core/Cargo.toml index 40e0d73685ac..949dc21c4f62 100644 --- a/crates/rspack_core/Cargo.toml +++ b/crates/rspack_core/Cargo.toml @@ -38,7 +38,7 @@ rspack_loader_runner = { version = "0.1.0", path = "../rspack_loader_runner" } rspack_macros = { version = "0.1.0", path = "../rspack_macros" } rspack_paths = { version = "0.1.0", path = "../rspack_paths" } rspack_regex = { version = "0.1.0", path = "../rspack_regex" } -rspack_resolver = { version = "0.2.0", features = ["package_json_raw_json_api", "yarn_pnp"] } +rspack_resolver = { version = "0.3.0", features = ["package_json_raw_json_api"] } rspack_sources = { workspace = true } rspack_util = { version = "0.1.0", path = "../rspack_util" } rustc-hash = { workspace = true } diff --git a/crates/rspack_core/src/resolver/resolver_impl.rs b/crates/rspack_core/src/resolver/resolver_impl.rs index a98e72a608c0..d5dee9f54163 100644 --- a/crates/rspack_core/src/resolver/resolver_impl.rs +++ b/crates/rspack_core/src/resolver/resolver_impl.rs @@ -283,7 +283,6 @@ fn to_rspack_resolver_options( roots, builtin_modules: false, imports_fields, - pnp_manifest: None, } } diff --git a/packages/rspack-test-tools/tests/configCases/resolve/main-field-fallback/index.js b/packages/rspack-test-tools/tests/configCases/resolve/main-field-fallback/index.js new file mode 100644 index 000000000000..fb2ec0249272 --- /dev/null +++ b/packages/rspack-test-tools/tests/configCases/resolve/main-field-fallback/index.js @@ -0,0 +1,5 @@ +import { foo } from 'invalid-pkg' + +it("should fallback from module to main when resolve failed", () => { + expect(foo).toBe(42); +}); \ No newline at end of file diff --git a/packages/rspack-test-tools/tests/configCases/resolve/main-field-fallback/node_modules/invalid-pkg/exist.js b/packages/rspack-test-tools/tests/configCases/resolve/main-field-fallback/node_modules/invalid-pkg/exist.js new file mode 100644 index 000000000000..055071cb82c7 --- /dev/null +++ b/packages/rspack-test-tools/tests/configCases/resolve/main-field-fallback/node_modules/invalid-pkg/exist.js @@ -0,0 +1,3 @@ +module.exports = { + foo: 42 +} \ No newline at end of file diff --git a/packages/rspack-test-tools/tests/configCases/resolve/main-field-fallback/node_modules/invalid-pkg/package.json b/packages/rspack-test-tools/tests/configCases/resolve/main-field-fallback/node_modules/invalid-pkg/package.json new file mode 100644 index 000000000000..b6239897bfad --- /dev/null +++ b/packages/rspack-test-tools/tests/configCases/resolve/main-field-fallback/node_modules/invalid-pkg/package.json @@ -0,0 +1,5 @@ +{ + "name": "invalid-pkg", + "main": "./exist.js", + "module": "./non-exist.js" +} \ No newline at end of file diff --git a/packages/rspack-test-tools/tests/configCases/resolve/main-field-fallback/rspack.config.js b/packages/rspack-test-tools/tests/configCases/resolve/main-field-fallback/rspack.config.js new file mode 100644 index 000000000000..287e66640de9 --- /dev/null +++ b/packages/rspack-test-tools/tests/configCases/resolve/main-field-fallback/rspack.config.js @@ -0,0 +1,19 @@ +const path = require("path"); + +/** + * @type {import('webpack').Configuration | import('@rspack/cli').Configuration} + */ +module.exports = { + devtool: false, + entry: { + main: { + import: "./index.js", + }, + }, + resolve: { + mainFields: ['module', 'main'], + extensionAlias: { + '.js': ['.ts', '.js'] + } + }, +};