在本地其他项目中使用修改后的 angular cdk 模块

use modified angular cdk module in other project locally

我已经分叉、克隆并修改了 angular material 存储库以满足我的需要。开发应用程序中的代码运行良好。

现在我想在我正在开发的另一个 angular 应用程序中使用这个模块,更准确地说是 @angular/cdkDragDropmodule

因此,我 运行 gulp cdk:build-release 并获得了包含构建模块的 dist/releases/cdk 文件夹。

我现在如何在我的其他项目中使用这个编译模块的 DragDropModule 我试过了 npm link。这在某种程度上起作用,因为我现在可以通过

导入模块

import { DragDropModule } from 'material2c/dist/releases/cdk/drag-drop';

然而,尝试 ng serve 给出了一堆错误

ERROR in C:/Users/admin/Documents/material2/dist/releases/cdk/esm5/drag-drop.es5.js Module not found: Error: Can't resolve '@angular/cdk/bidi' in 'C:\Users\admin\Documents\material2\dist\releases\cdk\esm5' ERROR in C:/Users/admin/Documents/material2/dist/releases/cdk/esm5/drag-drop.es5.js Module not found: Error: Can't resolve '@angular/cdk/coercion' in 'C:\Users\admin\Documents\material2\dist\releases\cdk\esm5' ERROR in C:/Users/admin/Documents/material2/dist/releases/cdk/esm5/drag-drop.es5.js Module not found: Error: Can't resolve '@angular/cdk/platform' in 'C:\Users\admin\Documents\material2\dist\releases\cdk\esm5' ERROR in C:/Users/admin/Documents/material2/dist/releases/cdk/esm5/drag-drop.es5.js Module not found: Error: Can't resolve '@angular/cdk/scrolling' in 'C:\Users\admin\Documents\material2\dist\releases\cdk\esm5'

感谢任何帮助:-)

如果项目正确 linked,导入应该保持不变。例如:

import { DragDropModule } from '@angular/cdk'

这是因为 npm link 从 linked 项目到目标项目中的 ./node_modules/@angular/cdk 创建了一个 link。

如果你需要分享这个模块,你可能会对模块的 dist 目录中的 运行 npm pack 感兴趣,它应该输出一个 tarball,然后你可以 npm install 到你的项目并轻松与其他人分享。