使用npm运行bash脚本

时间:2016-01-22 01:54:34

标签: node.js bash shell npm

我想尝试使用npm为Web应用程序运行各种构建任务。我知道我可以通过向fgrep添加scripts字段来实现此目的,如下所示:

package.json

当你有更多复杂的命令和一堆选项时,这会变得笨拙。是否可以将这些命令移动到bash脚本或其他内容?类似的东西:

"scripts": {
   "build": "some build command"
},

其中"scripts": { "build": "build.sh" }, 将执行npm run build文件中的命令?

阅读this帖子似乎是这样,但我不清楚我应该放弃build.sh文件的确切位置,或者我是否遗漏了某些内容。

3 个答案:

答案 0 :(得分:63)

完全可能......

"scripts": {
   "build": "./build.sh"
},

另外,请确保在bash文件的顶部添加哈希爆炸#!/usr/bin/env bash

还要确保您有权执行文件

chmod +x ./build.sh

最后,在npm中运行build的命令将是

npm run build

答案 1 :(得分:5)

如果您不想为授予权限而烦恼,并且您执行脚本的环境具有例如 sh,您可以这样做

"scripts": {
   "build": "sh ./build.sh"
}

答案 2 :(得分:2)

更简单:

我通常会一次性这样做,并且PoC不涉及VCS

package.json
{
    "scripts": {
        "ship": "rsync -avz deployable/* <some-server>:/var/www/some-site/sub-dir/"
    },
}
...