【问题标题】:Modify npm Package in Angular 8在 Angular 8 中修改 npm 包
【发布时间】:2020-01-10 17:05:38
【问题描述】:

我有一个 Angular 8 应用程序,我一直在我的本地主机上服务来构建它,在这个应用程序中,我使用了一个 NPM 包 (https://www.npmjs.com/package/rb-fab-speed-dial),我稍微修改了一下(我只是将 mat-fab 更改为mat-mini-fab 和 css 的 2 个属性),它工作得很好。现在它已经变成芬兰语了,我正在服务器上对其进行测试,所以我使用

构建了我的应用程序

ng 构建 --prod

它不再使用我修改过的代码,因为它在构建时重新安装了原始版本。

我会要求这个 repo 的合作者进行更改,但它最后一次发布是在 2 年前,我认为他现在不会帮助我。 如果只是为了css,“!important”属性做得恰到好处,但我需要在模板中将mat-fab修改为mat-mini-fab。

当然我可以修改构建的捆绑js,但这并不实用。

我想知道是否有办法仅在本地修改它,或者,如果需要,由于没有托管原始文件的 github,如何分叉包以使修改出现在构建的应用程序中?

提前致谢!

【问题讨论】:

  • 你不能写一个后期构建脚本来用你更新的文件替换原始文件吗?
  • 感谢您的回答,我正在查看构建后脚本!
  • 实际上刚刚意识到那会很痛苦。最好在安装后进行,即在npm install 之后,因为构建后它都会被编译。
  • 我遇到了同样的问题并解决了它,将修改后的文件复制到安装后脚本的包文件夹中:"postinstall": "cp myFile.js node_modules/package/path/"
  • @VictorOliveira 感谢您的回答,但我不确定我是否理解,您修改后的文件会被复制到 node_modules 吗?即使构建后不再有 node_modules ?或者 postInstall 可能发生在捆绑程序之前?

标签: angular npm node-modules


【解决方案1】:

我也没有设法使用 postinstall 和 postbuild 脚本,因为实际上有 2 个名称相同的 js 文件,es5 和 es 2015 的代码不同,所以我用 CSS 修改了所有内容感谢 !important 属性,像这样我设法将 mat-fab 的大小更改为 mat-mini-fab 大小并进行正确的调整。谢谢你的帮助 ! :)

【讨论】:

    猜你喜欢
    • 2019-12-17
    • 2017-09-16
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 2023-01-01
    • 1970-01-01
    • 2018-02-15
    相关资源
    最近更新 更多