摘要
我正在寻找有关如何将node_module的github-fork集成到我的项目中的说明,因此我可以对模块进行自己的修改,而无需触摸node_modules / xyz内的代码。
详细信息/示例/原因:
作为一个例子,我发现角度/ cdk拖放非常好,但是有缺陷。所以我需要更改node_modules/@angular/cdk/esm2015/drag-drop.js中的代码(我不想这样做)。
但也要密谋(https://github.com/plotly/angular-plotly.js)。
大多数情况下,就像cdk / drag-drop一样,有一个带有源代码的github存储库。当然,还有改变。在node_modules内部非常愚蠢,显然我更愿意分叉存储库,然后将我的分叉链接到package.json左右(?!)。
说...
我现在不知道
我找不到有关此主题的任何文档或博客。我想我一定选择了错误的关键字??!
我要问的问题
有人可以提供指向该页面的链接,该页面详细解释了此过程或至少总结了重要步骤吗?
到目前为止我在想什么...
将存储库相对于我的项目放在哪里,是否可以/必须位于并行文件夹中?
在我的主项目中,如何链接该新的git模块(是否在package.json中?)
每次更改后,我是否需要分别预编译该分支的git模块?哪些命令?还是有一种选择,以便我的主模块/项目在开发时也可以通过ng服务监视来编译每个更改?
答案 0 :(得分:2)
解决方案非常简单。
分叉@angular/cdk
并将其放置在/root/projects
(或自行命名)。
现在在您的app.module.ts
或将要使用的模块中,您将必须从DragDropModule
而不是通常从/root/projects
导入node_modules
import {DragDropModule} from 'projects/cdk-fork/drag-drop';
@NgModule({
declarations: [
...
],
imports: [
DragDropModule
....
]
})
export class AppModule {
}
您可以将这种方法应用于您希望分叉和编辑的任何模块。
答案 1 :(得分:2)
您可以在Angular项目中使用多个选项来使用依赖项的派生:
请检查@Dino's answer。
package.json
中,像这样导入分叉:"dependency": "git+https://github.com/your-username/your-git-repository.git"
node_modules
目录npm i
要详细了解如何将GitHub存储库作为依赖项导入,另请参阅the official npm documentation。
cd fork-directory
npm login
npm init
https://www.npmjs.com/package/your-package-name
应该返回404错误npm publish
package.json
中,导入fork:"your-package-name": "package-version"
(package-version
是您的npm软件包的版本号)npm i
要了解如何发布npm软件包,还请阅读this blog post和the official npm documentation。