Webpack发布后执行shell命令

时间:2018-08-15 18:40:36

标签: laravel

我有一个Laravel项目,正如您所知,在部署应用程序时,应将公共目录中的所有内容都复制到htdocs或public_html目录中,以隐藏应用程序的代码。

我正在使用webpack来构建我的react代码以及其他所有内容,每次更改javascript webpack都会执行我想要的操作,它会看到我进行了更改,然后构建了它。 但是,我想在构建后添加一个附加命令,那就是将所有内容从公共目录复制到htdocs / public_html中的正确目录中。

到目前为止,我在Run command after webpack build

上阅读了这个问题

它有效,我可以使回波起作用,但是我不确定cp为什么不起作用。回声有效,但是我如何知道可以使用哪些shell命令? 我尝试了'cp'甚至是powershell的'copy-item',但没有一个工作。

到目前为止,这是我的插件,我认为我需要更改目录才能安全 在再次复制任何内容之前,没有任何作用。

mix.webpackConfig(webpack => {
  return {
    plugins: [
      new WebpackShellPlugin({
        onBuildStart: ['echo "Starting Build ..."'],
        onBuildEnd: ["cd 'E:\\xammp\\apps\\FactorioCalculator'",
          "cp '.\\public\\*' '..\\..\\htdocs\\FactorioCalculator\\' -f -r"]
      })
    ]
  };
});

1 个答案:

答案 0 :(得分:1)

您始终可以使用copyDirectory混合方法。只需在webpack.mix.js文件的底部放置以下内容:

mix.copyDirectory('public', '../../htdocs/FactorioCalculator/')

您可能必须按照问题中的路径将路径更改为..\\..\\htdocs\\FactorioCalculator\\(我只带Mac,所以无法在其他计算机上进行测试)。


要回答您的原始问题,如果您想在每次Webpack完成构建时执行命令,都可以使用mix.then()来结束。