准备和预发布

中英双语

弃用说明:预发布

npm@1.1.71 开始,npm CLI 已经为 npm publishnpm install 运行了 prepublish 脚本,因为它是一种方便的方式来准备一个包以供使用(一些常见的用例在下面的部分中描述)。在实践中,它也被证明是 非常混乱。从 npm@4.0.0 开始,引入了一个新事件 prepare,它保留了这种现有行为。添加了一个新事件 prepublishOnly 作为过渡策略,以允许用户避免现有 npm 版本的混乱行为,并且只在 npm publish 上运行(例如,最后一次运行测试以确保它们处于良好状态)。

有关此更改的详细说明,请参阅 https://github.com/npm/npm/issues/10074,并进一步阅读。

用例

如果您需要在使用之前对您的包执行操作,以不依赖于目标系统的操作系统或体系结构的方式,使用 prepublish 脚本。这包括以下任务:

  • 将 CoffeeScript 源代码编译成 JavaScript。
  • 创建 JavaScript 源代码的缩小版本。
  • 获取您的包将使用的远程资源。

prepublish 时间做这些事情的好处是它们可以在一个地方做一次,从而降低复杂性和可变性。此外,这意味着:

  • 您可以依赖 coffee-script 作为 devDependency,因此您的用户不需要安装它。
  • 你不需要在你的包中包含缩小器,从而为你的用户减少大小。
  • 您不需要依赖您的用户在目标机器上拥有 curlwget 或其他系统工具。