You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ng build --watch删除dist内目录致about-us库链接失败求助

Angular库about-us链接及构建异常排查

背景

我的应用依赖两个Angular库:contact-us和about-us。contact-us已成功链接并正常使用,但用相同流程处理about-us时出现了一系列异常。

about-us链接操作步骤

cd libraries/about-us/
npm run build
cd /dist/about-us
npm link
ng build --watch

执行ng build --watch后的错误信息

注:以下错误标注3个关键点

Building Angular Package

------------------------------------------------------------------------------
Building entry point 'about-us'
------------------------------------------------------------------------------
// Point 1. 该错误在contact-us中也会出现,但不影响使用
⠋ Compiling with Angular sources in Ivy partial compilation mode.internal/bootstrap/switches/does_own_process_state.js:130
    cachedCwd = rawMethods.cwd();
                           ^

Error: ENOENT: no such file or directory, uv_cwd
    at process.wrappedCwd [as cwd] (internal/bootstrap/switches/does_own_process_state.js:130:28)
    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:872:42)
    at Loader.resolve (internal/modules/esm/loader.js:89:40)
    at Loader.getModuleJob (internal/modules/esm/loader.js:242:28)
    at Loader.import (internal/modules/esm/loader.js:177:28)
    at internal/modules/run_main.js:52:28
    at Object.loadESM (internal/process/esm_loader.js:68:11)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at async handleMainPromise (internal/modules/run_main.js:59:12) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'uv_cwd'
}

//point 2. 该错误不会在contact-us中出现
//point 3. 若在此处中断命令,dist/about-us/中仍能看到文件
events.js:377
      throw er; // Unhandled 'error' event
      ^
Error: ENOENT: no such file or directory, uv_cwd
    at process.cwd (internal/main/worker_thread.js:149:19)
    at MessagePort.<anonymous> (internal/main/worker_thread.js:163:48)
    at MessagePort.[nodejs.internal.kHybridDispatch] (internal/event_target.js:399:24)
    at MessagePort.exports.emitMessage (internal/per_context/messageport.js:18:26)
Emitted 'error' event on process instance at:
    at emitUnhandledRejectionOrErr (internal/event_target.js:579:11)
    at MessagePort.[nodejs.internal.kHybridDispatch] (internal/event_target.js:403:9)
    at MessagePort.exports.emitMessage (internal/per_context/messageport.js:18:26)
    at Worker.[kOnExit] (internal/worker.js:271:5)
    at Worker.<computed>.onexit (internal/worker.js:203:20) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'uv_cwd'
}

异常现象分析

执行命令后dist目录被清空,项目文件夹被删除,这是触发ENOENT错误的直接原因。

尝试调整后的问题

将ng build --watch移至about-us根目录执行,构建无错误,但在应用目录执行以下命令时:

npm link about-us
ionic cap build android

应用无法识别该库,报错:

cannot find module 'about-us' or its corresponding type declarations.
29     loadChildren: () => import('about-us').then(m => m.AboutusModule)
                                  ~~~~~~~~~~~~~~~~
[ERROR] An error occurred while running subprocess ng.
        ng run app:build exited with exit code 1.

同时发现应用node_modules目录中,about-us的链接与contact-us的链接存在差异。

问题诉求

需要明确ng build --watch异常的根本原因,以及解决库链接后应用无法识别的问题。

环境信息

  • Node版本:nvm 14.20
  • Angular CLI版本:14.0.1

内容的提问来源于stack exchange,提问作者user6781

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 19:23:22