是否有可能运行不可执行的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就会要求它是可执行的。 但是,如果没有-csh会运行一个不可执行的shell脚本而不会出错。

 sh -c 'bin/myscript.sh' sh: bin/myscript.sh: Permission denied sh -c 'sh bin/myscript.sh' myscript is running