1

我正在开发一个需要使用该npm pack命令的项目。在创建可安装的 tar 文件之前,是否需要在库/包上运行构建?或者我可以打包然后将其安装到应用程序中吗?

4

1 回答 1

0

是的,但出于完全不同的原因。

  • npm run build可以做任何事情:它只是执行你的对象build内部的值,例如在一个 Angular 项目中,它看起来像这样,scriptspackage.json

    "scripts": {
      "ng": "ng",
      "start": "ng serve",
      "build": "ng build",
      "test": "ng test",
      "lint": "ng lint",
      "e2e": "ng e2e"
    },  
    
  • npm pack基本上是“从一个包创建一个 tarball”,但这里是交易:它创建一个 tarball 的“包”必须存在。因此,为了创建 您经常npm pack针对的“包”,必须运行. 这是因为许多 JavaScript 项目是用TypeScript编写的(在这种情况下,“构建”通常会运行)或使用将其代码转换为生成 JavaScript 的构建系统(如babel)。如果您的项目非常初级,则很有可能您不必“构建任何东西”:如果您创建一个空目录并运行,您可以看到这一点,但很少有有用的包以这种方式创建。./distnpm buildnpx tscnpm init

结果npm pack是一个.tgz文件。这基本上是目标目录的压缩副本。您可以使用npm i ./file.tgz. 在您希望安装软件包的消费机器上,您不必构建任何东西。构建是您作为开发人员和包维护者所做的事情。例如,您构建生成 JavaScript 的 TypeScript。消费者只需下载结果并安装依赖项。它甚至不必知道您使用 TypeScript(或者更好的是Rust。)编写代码

于 2021-10-06T21:10:17.600 回答