当前位置: 首页 > 知识库问答 >
问题:

有没有办法在package.json中分叉npm库并在install上运行其构建过程?

杜弘光
2023-03-14

我有一个npm依赖项(例如ngx-infinite-scroll),我当前正在尝试派生(用于错误修复),并将我的派生版本作为一个依赖项包含在我的应用程序中。下面是我的package.json中包含的示例:

  "dependencies": {
    "ngx-infinite-scroll": "github:jcroll/ngx-infinite-scroll#bugfixes",
  },
  "scripts": {
    ...
    "prepare": "npm run build"
  },

相反,当我从github安装这个库时,我希望它将其扁平化的dist目录作为库的顶级目录发布,就像由构建库并运行$npmrubpublish./dist的维护人员安装原始库的方式一样。有什么办法可以做到这一点吗?

编辑:通过这个答案,我也知道我可以构建dist并将代码提交给这个新分支,但我想要一个更优雅的方式,因此,这个问题。

共有1个答案

仲浩歌
2023-03-14

你可以做两件事

对包的更改

您有一个事件preparepostinstallinstall并在相同的

"postinstall": "cd node_modules/ngx-infinite-scroll && npm i && npm run build"
"postinstall": "cd node_modules/ngx-infinite-scroll && npm i && npm run build && mv dist ../ngx-infinite-scroll-dist && cd .. && rm -rf ngx-infinite-scroll && mv ngx-infinite-scroll-dist ngx-infinite-scroll && cd ngx-infinite-scroll && npm i",

另一个选项是更改分叉并更新package.json的 postinstall以便在安装分叉包时执行 NPM run build并创建 dist文件夹

编辑:20-mar-2018

您是对的,如果我们使用 postinstall,那么它将创建无限循环。您可以在 prepack事件中执行此操作。

 
  "prepack": "node build.js",

 

使用

 
  npm add tarunlalwani/ngx-infinite-scroll#so49242809

 

安装后,它将拥有dist文件夹

 类似资料:
  • 问题内容: 我们正在开发S60版本,该平台具有不错的Python API。 但是,关于Android上的Python尚无任何官方资料,但是由于Jython存在,有没有办法让蛇和机器人一起工作? 问题答案: 一种方法是使用: 开源Python库,用于快速开发利用创新用户界面的应用程序,例如多点触控应用程序。 可在和上运行。你可以在所有受支持的平台上运行相同的代码。

  • 问题内容: 我正在使用Docker使用SSL创建特定的nginx容器。 但是我不希望我的SSL文件原样保留在我的版本控制系统中。因此,它们是加密的。在构建Docker容器时,我需要密码来解密文件并测试我的Nginx配置。 我用来在安装脚本中获得提示,但Docker只是在提示上停止了: 做某事时有什么办法得到提示吗? 谢谢你的帮助 :) 问题答案: 好吧,在四处搜寻之后,在期间没有提示的方法。它被设

  • 我下载一个开源项目研究,发现有peer esbuild@"^0.14.x || ^0.15.0 || ^0.16.0 || ^0.17.0" from esbuild-plugin-less@1.2.0 这样的报错: 但是我在package.json中并没有看到有任何的eslint的依赖库: 在package.json中没有依赖库,为何这里还有依赖冲突呢?需要如何才能解决?

  • 我有一个过滤器和一个Servlet。我试图创建一个Cookie,并将其添加到“chain.do过滤器”方法后的过滤器中的响应中。 *Cookie需要在"chain.do过滤器"方法之后创建并添加到响应中,因为它的值取决于来自响应的一些信息。 我做了一些研究,发现为响应创建一个包装器(在doFilter方法之前)将允许我实现这一点,但它不起作用,我可以将Cookie添加到包装器中,但在浏览器中检查时

  • 有没有办法在Docker内部运行LXD?eg. 在使用ubuntu 16.04的主机上: 在容器中: LXD守护进程可以工作,但由于cgroups错误,我无法启动LXD容器。 我也尝试过:

  • 我正在寻找一种使用npm脚本来运行tsc的方法——看 tsc—执行watch,但从不调用nodemon,反之亦然。