Fork of daniellemaywood.uk/gleam — Wasm codegen work
2

Configure Feed

Select the types of activity you want to include in your feed.

clean for all targets and modes and simplify code

+16 -11
+16 -11
compiler-cli/src/dependencies.rs
··· 299 299 let changes = PackageChanges::between_manifests(&old_manifest, &manifest); 300 300 telemetry.resolved_package_versions(&changes); 301 301 302 - // Invalidate build caches after removing package 303 - let target = config.target; 304 - let name = config.name.clone(); 302 + // Cleanup build cache of the root package if there are some changes. 303 + // Without this, if a removed dependency is still used, teh build will 304 + // succeed, resulting in runtime crash due to missing files. 305 + if changes.any_changes() { 306 + tracing::debug!("cleaning_root_package_build_cache"); 307 + for mode in Mode::iter() { 308 + for target in Target::iter() { 309 + let lock = BuildLock::new_target(paths, mode, target)?; 310 + let _guard = lock.lock(&telemetry)?; 305 311 306 - // We need to clean build directory for the top level package for both dev 307 - // and prod modes 308 - for mode in [Mode::Dev, Mode::Prod] { 309 - let lock = BuildLock::new_target(paths, mode, target)?; 310 - let _guard = lock.lock(&telemetry)?; 311 - 312 - let build_directory_path = paths.build_directory_for_package(mode, target, &name); 313 - fs::delete_directory(build_directory_path.as_ref())?; 312 + let build_directory_path = 313 + paths.build_directory_for_package(mode, target, &config.name); 314 + if build_directory_path.exists() { 315 + fs::delete_directory(build_directory_path.as_ref())?; 316 + } 317 + } 318 + } 314 319 } 315 320 316 321 Ok(manifest)