当执行发包命令npm publish上传包的时候,总是报错
'xxx' is not recognized as an internal or external command.
当npm publish命令的时候,如果在package.json中,有在script中定义prepublish或者prepare脚本的话,就会被立即执行,这些是用来必要的构建步骤,比如编译代码、打包等等。
所以我注意到package.json中带有脚本,先直接移除再执行命令就可以正常运行了,这些前置脚本并不是每一次都会执行,所以移除后也不用担心会哪里出问题。
{
"prepublishOnly": "pinst --disable"
}
如果是遇到带有域名的这种包,还需要将配置好的registry地址改为目标私服地址,再重新执行npm publish即可,修改方式如下:
方式一(命令):
npm config set registry http://.....
方式二(直接修改文件配置的形式):
C:\Users\DELL\.npmrc
会自动执行的前置字段
prepublishOnly
prepack
prepare:npm install之后执行 和npm publish之前执行
postpack
publish
postpublish