2016-02-29 195 views
1

我遇到了PaaS问题。当我部署我的节点应用程序时,我的脚本正在丢失其可执行位。我知道从长远来看,我的PaaS需要解决这个问题,但现在我正在寻找解决方法。是否可以运行不可执行的npm脚本?

我的NPM脚本文件(https://docs.npmjs.com/misc/scripts#exiting)在阅读:

脚本是通过将线作为脚本参数SH运行。

如果我理解正确的话像这样运行脚本:

SH myscript.sh

如果是真的脚本不需要可执行。但是,如果我运行一个不可执行的npm脚本。

NPM运行的MyScript

我得到这个:

SH:斌/ myscript.sh:权限被拒绝

有没有办法解决?

编辑:这里是我的简单脚本:

#!/bin/bash 
echo Hello World 
+0

myscript.sh的内容是什么?它是一个bash脚本吗? – nstoitsev

回答

1

尝试在你的package.json这样一行:

"myscript": "sh bin/myscript.sh" 

我认为这里的小字是故宫正在运行的命令如sh -c 'line from package.json here',如果这只是一个文件路径,sh将要求它是可执行的。但是,如果没有-csh将会运行不可执行的shell脚本而不会出错。

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

sh -c 'sh bin/myscript.sh' 
myscript is running 
相关问题