通过Shell脚本运行Gatsby Build

时间:2018-10-04 20:02:25

标签: javascript wordpress reactjs shell gatsby

因此,在某些情况下,我使用gatsby创建了一个站点,该站点从Wordpress的API中提取数据。我发现将帖子保存到我的 functions.ph p文件中后,可以触发wordpress中的钩子触发。

add_action( 'save_post', 'fireFunctionOnSave' );
  function fireFunctionOnSave($post_id)
{
  if(wp_is_post_revision( $post_id) || wp_is_post_autosave( $post_id )) 
{
  return;
}
$old_path = getcwd();
chdir('/Applications/MAMP/htdocs/elliot-wp-gatsby/wp- 
content/themes/twentyseventeen/');
$output = shell_exec('./build.sh');
chdir($old_path);

$myfile = fopen("/Applications/MAMP/htdocs/elliot-wp-gatsby/wp- 
content/themes/twentyseventeen/output.txt", "w") or die("Unable to open 
file!");
fwrite($myfile, $output);
fclose($myfile);
}

到目前为止,它可以打开并运行我的Shell脚本,但实际上不会运行gatsby来构建任何人有任何想法吗?这是我的shell脚本。

#!/bin/bash
cd /Users/elliotm/Dev-local/Projects/gatsby-wp
npm run build
echo "site built/deployed"

谢谢

1 个答案:

答案 0 :(得分:0)

我不确定shell_exec是否可以与bash脚本和更改目录一起使用。请尝试:exec('cd /Users/elliotm/Dev-local/Projects/gatsby-wp && npm run build')

&&将强制执行程序仅在第一部分成功的情况下才执行第二部分。