首页 > 解决方案 > 如何使“ng serve”与自定义 Angular 库一起使用?

问题描述

我有一个包含两个 Angular 应用程序的项目。这些应用程序有很多共同点,因此我决定使用通用代码创建一个 Angular 库。现在我有一个带有两个应用程序和一个库的 Angular 工作区。

该库是使用 ng build 构建到某个本地文件夹,然后使用“ng link”链接到公共 node_modules。当我对应用程序进行编码时,VSCode 会给出有关库的提示。我可以使用“ng build”构建应用程序。但是每次我在应用程序上运行“ng serve”并尝试重建库时,“ng serve”都会出现以下错误

ERROR in ./Angular/Commons/target/__ivy_ngcc__/fesm2015/vmig-angular-commons.js
Module build failed: Error: ENOENT: no such file or directory, open 'G:\Projects\Vmig.Expert\Angular\Commons\target\__ivy_ngcc__\fesm2015\vmig-angul r-commons.js' 
at Object.openSync (fs.js:458:3)
at Object.readFileSync (fs.js:360:35)
at Storage.provideSync (G:\Projects\Vmig.Expert\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:109:13) 
at CachedInputFileSystem.readFileSync (G:\Projects\Vmig.Expert\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:289:32)
at Observable._subscribe (G:\\Projects\Vmig.Expert\node_modules\@ngtools\webpack\src\webpack-input-host.js:36:51) 
at Observable._trySubscribe (G:\\Projects\Vmig.Expert\node_modules\@ngtools\webpack\node_modules\rxjs\internal\Observable.js:44:25)
at Observable.subscribe (G:\Projects\Vmig.Expert\node_modules\@ngtools\webpack\node_modules\rxjs\internal\Observable.js:30:22)
at SyncDelegateHost._doSyncCall (G:\Projects\Vmig.Expert\node_modules\@angular-devkit\core\src\virtual-fs\host\sync.js:25:20)
at SyncDelegateHost.read (G:\Projects\Vmig.Expert\node_modules\@angular-devkit\core\src\virtual-fs\host\sync.js:48:21)
at WebpackCompilerHost.readFileBuffer (G:\Projects\Vmig.Expert\node_modules\@ngtools\webpack\src\compiler_host.js:166:44)
at VirtualFileSystemDecorator.readFile (G:\Projects\Vmig.Expert\node_modules\@ngtools\webpack\src\virtual_file_system_decorator.js:43:54)
at processResource (G:\Projects\Vmig.Expert\node_modules\loader-runner\lib\LoaderRunner.js:202:11)
at iteratePitchingLoaders (G:\Projects\Vmig.Expert\node_modules\loader-runner\lib\LoaderRunner.js:158:10)
at runLoaders (G:\Projects\Vmig.Expert\node_modules\loader-runner\lib\LoaderRunner.js:365:2) 
at NormalModule.doBuild (G:\Projects\Vmig.Expert\node_modules\webpack\lib\NormalModule.js:295:3)
at NormalModule.build (G:\Projects\Vmig.Expert\node_modules\webpack\lib\NormalModule.js:446:15)

我在 Windows 机器上使用 Angular 10。有没有办法让 ng serve 与图书馆一起工作?

据我了解,文件夹ivy_ngcc最初由“ng serve”创建,它不会尝试重建它。但是当我运行库的构建时,这个目录被删除了。

标签: angular

解决方案


推荐阅读