Javascript 如何运行多个grunt scripts.postinstall?

Javascript 如何运行多个grunt scripts.postinstall?,javascript,node.js,gruntjs,bower,Javascript,Node.js,Gruntjs,Bower,我正在尝试从grunt的scripts.postinstall运行多个CLI命令。我想不出如何让两者都运行。如果添加第二个命令,则不运行。它们分别在postinstall和控制台中工作 我尝试将它们包装成一个数组: "scripts": { "postinstall": ["node_modules/.bin/bower install", "grunt setup"] }, 我试着用分号把它们分开: "scripts": { "postinstall": "node_mo

我正在尝试从grunt的scripts.postinstall运行多个CLI命令。我想不出如何让两者都运行。如果添加第二个命令,则不运行。它们分别在postinstall和控制台中工作

我尝试将它们包装成一个数组:

"scripts": {
    "postinstall": ["node_modules/.bin/bower install", "grunt setup"]
},
我试着用分号把它们分开:

  "scripts": {
    "postinstall": "node_modules/.bin/bower install; grunt setup"
  },
我似乎找不到解决问题的办法

这些部分的My gruntfile.js如下所示:

mkdir: {
    setup: {
        options: {
            create: [
                'app/main/source/www', 'app/main/build', 'app/main/docs', 'app/main/tests',
                'app/development',
                'app/releases'
            ]
        }
    }
}

grunt.registerTask('setup', [
    'mkdir:setup',
    'bowercopy:wordpress'
]);
为了以防万一,这里有一个我的package.json的隐藏版本,我截取了上面的代码示例,主要是为了提供上下文

{
  "name": "webapp",
  "version": "0.1.0",
  "description": "A web app using bower and grunt",
  "main": "gruntfile.js",
  "scripts": {
    "postinstall": "node_modules/.bin/bower install"
  },
  "repository": {
    "type": "git",
    "url": "someurl.com"
  },
  "keywords": [
    "web", "app"
  ],
  "author": {
    "company": "somecompany",
    "name": "somename",
    "email": "email@me.com"
  },
  "license": "MIT",
  "homepage": "https://someurl.com",
  "bugs": {
    "url": "someurl.com"
  },
  "devDependencies": {
    "grunt": "^0.4.5",
    "bower" : "~1.3.5",
    etc
  }
}

您可以尝试编写一个Bash脚本来执行这两个命令,然后运行它

post_install.sh:

#!/bin/bash
node_modules/.bin/bower install
grunt setup
package.json:

"scripts": {
    "postinstall": "./post_install.sh"
  },

您可以使用&&在npm脚本部分中运行多个命令

"scripts": {
    "postinstall": "bower install && grunt setup"
},

嗨,Chris,一开始它似乎是可行的,但它似乎在某个地方失败了,因为bower安装程序没有拉下依赖项,grunt安装程序也没有创建项目文件继承权。但它似乎在安装后运行???你将如何调试这个?似乎没有任何错误。对不起,克里斯,效果很好。无论出于什么原因,我都默认使用文本编辑器打开.sh文件。因此,它将“运行”post_install.sh,但实际上它只是试图重新打开我在Sublimit中已打开的内容。我获得权限错误,仅供参考,我无法使用sudo,因为我将在Docker中工作。你不能在windows上执行此操作。我主要使用windows,以前也使用过此技术。它可以work@kobe是的,应该很好<代码>&&是标准的shell脚本操作符,它不是特定于节点的