我有一个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"]
})
]
};
});
答案 0 :(得分:1)
您始终可以使用copyDirectory
混合方法。只需在webpack.mix.js
文件的底部放置以下内容:
mix.copyDirectory('public', '../../htdocs/FactorioCalculator/')
您可能必须按照问题中的路径将路径更改为..\\..\\htdocs\\FactorioCalculator\\
(我只带Mac,所以无法在其他计算机上进行测试)。
要回答您的原始问题,如果您想在每次Webpack完成构建时执行命令,都可以使用mix.then()
来结束。