Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 是否可以运行不可执行的npm脚本?_Node.js_Bash_Npm - Fatal编程技术网

Node.js 是否可以运行不可执行的npm脚本?

Node.js 是否可以运行不可执行的npm脚本?,node.js,bash,npm,Node.js,Bash,Npm,我的PaaS有问题。当我部署我的节点应用程序时,我的脚本正在丢失它们的可执行位。我知道从长远来看,我的PaaS需要解决这个问题,但现在我正在寻找一个解决办法 我在npm脚本文档()中读到了这一点: 通过将该行作为脚本参数传递给sh来运行脚本 如果我理解正确,脚本将如下运行: "myscript": "sh bin/myscript.sh" sh myscript.sh 如果这是真的,那么脚本不需要是可执行的。但是,如果我运行的npm脚本不是可执行的 npm运行myscript 我明白了: sh

我的PaaS有问题。当我部署我的节点应用程序时,我的脚本正在丢失它们的可执行位。我知道从长远来看,我的PaaS需要解决这个问题,但现在我正在寻找一个解决办法

我在npm脚本文档()中读到了这一点:

通过将该行作为脚本参数传递给sh来运行脚本

如果我理解正确,脚本将如下运行:

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

如果这是真的,那么脚本不需要是可执行的。但是,如果我运行的npm脚本不是可执行的

npm运行myscript

我明白了:

sh:bin/myscript.sh:权限被拒绝

有办法解决这个问题吗

编辑:以下是我的简单脚本:

#!/bin/bash
echo Hello World

在package.json中尝试这样一行:

"myscript": "sh bin/myscript.sh"
我认为这里的细节是npm正在以package.json中的
sh-c'行运行您的命令,如果这只是一个文件路径,
sh
将要求它是可执行的。但是,如果没有
-c
sh
将无错误地运行不可执行的shell脚本

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

sh -c 'sh bin/myscript.sh'
myscript is running

myscript.sh的内容是什么?它是bash脚本吗?