diff --git a/packages/js/package.json b/packages/js/package.json index 95c87a19e5..b417ced8be 100644 --- a/packages/js/package.json +++ b/packages/js/package.json @@ -55,6 +55,7 @@ "npm-package-arg": "11.0.1", "npm-run-path": "^4.0.1", "ora": "5.3.0", + "picocolors": "^1.1.0", "picomatch": "4.0.2", "semver": "^7.5.3", "source-map-support": "0.5.19", diff --git a/packages/js/src/utils/assets/copy-assets-handler.ts b/packages/js/src/utils/assets/copy-assets-handler.ts index 4846d83a02..6f874f056a 100644 --- a/packages/js/src/utils/assets/copy-assets-handler.ts +++ b/packages/js/src/utils/assets/copy-assets-handler.ts @@ -12,8 +12,9 @@ import * as path from 'node:path'; import ignore from 'ignore'; import { globSync } from 'tinyglobby'; import { AssetGlob } from './assets'; -import { logger } from '@nx/devkit'; +import { logger, workspaceRoot } from '@nx/devkit'; import { ChangedFile, daemonClient } from 'nx/src/daemon/client/client'; +import { dim } from 'picocolors'; export type FileEventType = 'create' | 'update' | 'delete'; @@ -52,6 +53,9 @@ export const defaultFileEventHandler = (events: FileEvent[]) => { } else { logger.error(`Unknown file event: ${event.type}`); } + const eventDir = path.dirname(event.src); + const relativeDest = path.relative(eventDir, event.dest); + logger.log(`\n${dim(relativeDest)}`); }); }; @@ -166,7 +170,9 @@ export class CopyAssetsHandler { async processWatchEvents(events: ChangedFile[]): Promise { const fileEvents: FileEvent[] = []; for (const event of events) { - const pathFromRoot = path.relative(this.rootDir, event.path); + const pathFromRoot = event.path.startsWith(this.rootDir) + ? path.relative(this.rootDir, event.path) + : event.path; for (const ag of this.assetGlobs) { if ( picomatch(ag.pattern)(pathFromRoot) &&