我使用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
的.scripts
位?
为此,您可能需要使用事件挂钩。
在Laravel Mix v6中,您可以像这样使用事件挂钩(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中,执行混合后必须使用事件挂钩(v5(mix.then()
来运行任意代码。在执行混合之前,没有用于运行代码的事件挂钩。