webpack - 我可以从 Laravel Mix 中链式调用 shell 命令吗?
问题描述
我使用Laravel Mix - 这是一种轻松使用 webpack 的灵活方式。
运行watch
时,只要文件更改,它将重新编译开发模式构建。然而,为了使用这些,有一个外部构建步骤——例如,一个项目需要调用drush cc css-js
.
有没有办法从webpack.mix.js
文件或其他方法中做到这一点?
有点像:
mix()
.js('src/app.js', 'dist/')
.vue()
.shell('drush cc css-js') // ««« something like this?
;
或者也许它必须进入package.json
's.scripts
位?
解决方案
为此,您可能需要使用事件挂钩。
在Laravel Mix v6中,你可以像这样使用Event Hooks (v6):
const { exec } = require('child_process');
mix.js('src/app.js', 'dist/')
.vue()
.after(() => {
exec('drush cc css-js');
});
如果您想在编译资源之前执行某些操作,请使用mix.before()
而不是mix.after()
.
编辑:正如 OP 在下面指出的那样,在Laravel Mix v5中,您必须在执行混合后使用Event Hook (v5) mix.then()
来运行任意代码。在执行混合之前没有事件挂钩来运行代码。
推荐阅读
- javascript - html2canvas 限制大小/数据/宽度/高度
- django - Django fails to serve static file in ec2?
- c++ - Return 是什么意思
意思是? - java - 检查列表中的字符串是否可以由同一列表中的元素串联形成
- reactjs - SingleField [react-admin] 内芯片的自定义资源
- vb.net - 计时器中的 CopyFromScreen 不刷新图像
- angular - 错误类型错误:当我尝试按 ID 获取用户时,无法读取未定义的属性“id”
- git - 如何使用 CURL 将文件夹上传到 github 存储库
- javascript - 如何识别未按路径找到的页面并按路径重定向到登录页面
- ruby - 如何在不更改其初始值的情况下使用 Array?