【问题标题】:How to modify an npm package built with TypeScript如何修改使用 TypeScript 构建的 npm 包
【发布时间】:2018-10-26 07:00:21
【问题描述】:

我想尝试对在 npm 中发布的包进行一些更改? (我提出了一些更改作为一个问题,但我认为它们足够简单,我可以尝试它们)。

https://www.npmjs.com/package/bt-presence#contributing--modifying

作者提供了一些关于如何修改包的信息,但对于第一次这样做的人来说还不够。

  • 我应该将 GitHub 存储库克隆到哪里?安装包的文件夹?我在我的主文件夹中尝试过,但无法构建(未修改)。
  • 命令npm run build - 这是从哪里运行的? package.json所在包的根目录?
  • 我需要修改package.json吗?

一般来说,为 npm 开发这样的东西的最佳方式是什么?我以前做过包,但它们只是 Javascript。

【问题讨论】:

  • 这些说明特定于bt-presence 项目。 npmjs.com 使用存储库中的自述文件,因此该文本只是自述文件的副本。您是否遇到特定错误?
  • 我以它为例 - 将包含 TypeScript 包的 git 存储库克隆到哪里,以便可以构建它,以及实际从哪里运行构建命令?

标签: node.js typescript npm


【解决方案1】:
  • 如果您想单独处理bt-presence 包,您可以将克隆的存储库放在任何地方。如果您想将修改后的bt-presence 版本与应用程序结合使用,我推荐的方法是将bt-presence 注册为应用程序的package.json 文件中的依赖项,并将版本设置为bt-presence 的相对路径存储库;然后在应用程序中运行 npm install 将创建从应用程序中的 node_modules/bt-presence 到您的 bt-presence 存储库的符号链接。
  • npm run build 确实应该从包含 package.jsonbt-presence 的根文件夹中运行。
  • 如果你只是想修改bt-presence的代码,你不需要修改它的package.json。如果您需要更改其中的任何设置,例如,如果您需要向您的 bt-presence 版本添加额外的依赖项,您只会修改 package.json

以上都不是 TypeScript 所特有的。 (如果需要以某种方式转换或打包 JavaScript 文件,一些 JavaScript 包也有构建过程。)

【讨论】:

  • 谢谢马特。我将它与 Node-Red 一起使用,我想在测试更改时将其用作当前安装版本的替代品。由于已安装的版本没有ts 文件,我可以将该文件插入到已安装版本文件夹的正确位置吗? build 命令是来自 modules package.json 位置还是应用程序?
  • 第一个问题:不建议修改npm创建的安装目录。而是将"bt-presence": "path/to/bt-presence"(替换为您的bt-presence 存储库的实际相对路径)添加到应用程序中package.jsondependencies 部分,然后运行npm install,npm 应该与您的bt-presence 建立符号链接存储库,以便 Node-RED 使用它。第二个问题:bt-presencepackage.json 位置(我更新了答案)。
  • 我又来了 Matt - 成功克隆并构建了 bt-presence 的一个版本。我可以看到在哪里添加依赖项,但对运行 npm install 命令有点紧张。我应该在哪里运行与node-modules 文件夹相关的确切位置?您提到了application,但这并不是真正的应用程序——只是node-modules 中需要bt-presence 的另一个模块。我是否只是在我设置了依赖项的package.json文件所在的文件夹中运行命令?
  • 我假设您有一个顶级目录,其中包含您创建的 package.json 文件,该文件指定了对 node-rednode-red-contrib-bt-presence 的依赖关系。将bt-presence 的相对路径依赖添加到此package.json 文件并在顶层目录中运行npm install。只要bt-presence 版本号兼容,node-red-contrib-bt-presence 就会使用您修改后的bt-presence 版本,而无需您编辑node_modules/node-red-contrib-bt-presence/package.json。希望这样做;如果您需要更多帮助,请告诉我。
猜你喜欢
  • 2018-08-11
  • 2011-10-02
  • 1970-01-01
  • 2018-07-29
  • 2016-03-09
  • 2018-02-05
  • 1970-01-01
  • 2018-05-07
  • 2020-05-05
相关资源
最近更新 更多