是否有可能运行不可执行的npm脚本?
我的PaaS有问题。 当我部署我的节点应用程序时,我的脚本正在丢失其可执行位。 我知道从长远来看,我的PaaS需要解决这个问题,但现在我正在寻找解决方法。
我在npm脚本文档( https://docs.npmjs.com/misc/scripts#exiting )中读到了这个:
脚本通过将行作为脚本parameter passing给sh来运行。
如果我理解正确,脚本运行如下:
sh myscript.sh
如果这是真的脚本不需要是可执行的。 但是,如果我运行一个不可执行的npm脚本。
npm运行myscript
我得到这个:
sh:bin / myscript.sh:权限被拒绝
有没有解决的办法?
编辑:这是我的简单的脚本:
#!/bin/bash echo Hello World
试试你的package.json这样的一行:
"myscript": "sh bin/myscript.sh"
我认为这里的细节是npm正在运行你的命令,就像sh -c 'line from package.json here'
,如果这只是一个文件path,那么sh
就会要求它是可执行的。 但是,如果没有-c
, sh
会运行一个不可执行的shell脚本而不会出错。
sh -c 'bin/myscript.sh' sh: bin/myscript.sh: Permission denied sh -c 'sh bin/myscript.sh' myscript is running