我有一个 Laravel 项目,正如您所知,当您部署应用程序时,公共目录中的所有内容都应复制到 htdocs 或 public_html 目录以隐藏应用程序的代码。
我正在使用 webpack 来构建我的 React 代码和其他所有内容,每次我更改我的 javascript webpack 时,它都会执行我想要的操作,它会看到我进行了更改,然后它会构建它。但是我想在它构建后添加一个额外的命令,即将所有内容从公共目录复制到 htdocs/public_html 中的正确目录中。
到目前为止,我在这里阅读了这个问题,在 webpack 构建之后运行命令
它可以工作,我可以让回声工作,但我不确定为什么 cp 不工作。Echo 有效,但我怎么知道我可以使用哪些 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"]
})
]
};
});
你总是可以使用copyDirectory
混合方法。只需在webpack.mix.js
文件底部放置类似以下内容:
mix.copyDirectory('public', '../../htdocs/FactorioCalculator/')
您可能需要根据问题中的路径更改路径..\\..\\htdocs\\FactorioCalculator\\
(我只有我的 mac,所以我无法在我的另一台机器上进行测试)。
为了回答你最初的问题,如果你想在每次 webpack 构建完成时执行一个命令,你可以使用mix.then()
需要闭包的 。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句