我需要访问和调试/更改包含来自不同存储库的自定义 Angular 组件的依赖项之一的代码。该存储库通过自托管的 npm 注册表包含在
package.json
中。
我尝试用本地存储库的链接替换远程依赖项,但随后应用程序抛出错误(编译没问题,但是当您访问本地主机网站时,我收到错误,指出 XYZ 不是函数,必须进行某些映射被打破)。
当我转到
node_modules/
文件夹并查找依赖项时,我看到的只是类型声明文件 (foobar.d.ts
),而不是实际的代码,或者我只是在调试时尝试更改它。
当我通过本地存储库安装依赖项时,我在 node_modules/
中获得了实际代码,但是某些映射/包含的地方一定存在命名空间声明或其他问题,我不确定。
如何调试它,而不必将每个更改发布到注册表并更新模块?
事后看来,解决方案相当简单。
只需使用
ng build
生成所需的类型声明文件。根据您的配置,生成的文件夹的目标可能会有所不同。
对我来说,依赖性落在了
/dependencyRepoName/dist
。现在我只需要链接它并将其安装到我的项目中即可。
为此,我只需在依赖项的源代码中执行
npm link
即可。就我而言,那就是/dependencyRepoName/project
。
接下来,我切换到我的项目,在其中导航到包含前端的客户端文件夹并执行
npm link dependencyRepoName
,然后执行 npm i ../pathToRepo/dependencyRepoName/dist
这应该安装依赖项的本地版本并链接它,以便每次更新依赖项代码时(您可能需要使用
ng build
重建依赖项),您的项目应用程序都会重建并显示更改。