我正在开发一个需要使用该npm pack
命令的项目。在创建可安装的 tar 文件之前,是否需要在库/包上运行构建?或者我可以打包然后将其安装到应用程序中吗?
1 回答
是的,但出于完全不同的原因。
npm run build
可以做任何事情:它只是执行你的对象build
内部的值,例如在一个 Angular 项目中,它看起来像这样,scripts
package.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)。如果您的项目非常初级,则很有可能您不必“构建任何东西”:如果您创建一个空目录并运行,您可以看到这一点,但很少有有用的包以这种方式创建。./dist
npm build
npx tsc
npm init
结果npm pack
是一个.tgz
文件。这基本上是目标目录的压缩副本。您可以使用npm i ./file.tgz
. 在您希望安装软件包的消费机器上,您不必构建任何东西。构建是您作为开发人员和包维护者所做的事情。例如,您构建生成 JavaScript 的 TypeScript。消费者只需下载结果并安装依赖项。它甚至不必知道您使用 TypeScript(或者更好的是Rust。)编写代码