直接运行时防止`npm publish`

Sib*_*raj 3 node.js npm npm-publish

我不确定天气是否可能。

是否可以npm publish在直接运行时阻止发布并使其只能通过脚本访问。

npm publish直接执行时必须拒绝用户。即用户必须能够通过任何脚本或npm run <script>

或者

有没有办法告诉 npm 只发布<folder>/或在发布时查找 tarball。

Sib*_*raj 7

如果我将其标记为私有,我将根本无法发布。我的主要目的是防止意外发布。

NPM 团队提供了一个简单的解决方法,非常棒。

包.json

{
  "prepublishOnly": "node prepublish.js",
  "release": "RELEASE_MODE=true npm publish"
}
Run Code Online (Sandbox Code Playgroud)

预发布.js

const RELEASE_MODE = !!(process.env.RELEASE_MODE)

if (!RELEASE_MODE) {
    console.log('Run `npm run release` to publish the package')
    process.exit(1) //which terminates the publish process
}
Run Code Online (Sandbox Code Playgroud)